JavaScript实现图片推拉门效果完整代码

作者:微光时间:2026-10-23 07:27:36浏览:582

本文详细介绍如何使用JavaScript、HTML和CSS实现网页中的图片推拉门效果。通过获取DOM节点、计算容器宽度及设置图片绝对定位,结合鼠标悬停事件触发位移动画,提供完整的代码示例与结构说明,帮助开发者快速掌握该交互特效的实现方法。

JavaScript实现图片推拉门效果完整代码

本文面向前端开发初学者。

推拉门式布局是网页设计中常见的交互形式,利用JavaScript实现该效果相对简单。核心思路是通过DOM方法获取相关节点元素,并对这些元素的属性进行动态赋值与调整。

项目目录结构与HTML初始化

首先,在项目根目录下新建一个名为index.html的文件。随后,在同一目录中创建三个子文件夹,分别命名为images(用于存放作为“门”的图片资源)、styles(用于存放CSS样式文件)以及scripts(用于存放JavaScript脚本文件)。接着,在index.html文件中编写基础HTML结构代码。


<!doctype html>
<html>
	<head>
	<meta charset="utf-8"/>
	<title>sliding doors</title>
	<link rel="stylesheet" href="styles/doors.css" rel="external nofollow" />
	<script src="scripts/doors.js"></script>
	</head>
	<body>
		<div id="container">
			<img src="images/door1.jpg" alt="柯南" title="柯南"/>
			<img src="images/door2.jpg" alt="柯南" title="柯南"/>
			<img src="images/door3.jpg" alt="柯南" title="柯南"/>
			<img src="images/door4.jpg" alt="柯南" title="柯南"/>
		</div>
	</body>
</html>

CSS样式定义

接下来,在styles目录下创建doors.css文件,定义页面布局与样式。


#container{
	height:600px;
	border-right:1px solid #ccc;
	border-bottom:1px solid #ccc;
	margin:0 auto;
	position:relative;
	overflow:hidden;
}
 
#container img{
	position:absolute;
	border-left:1px solid #ccc;
	display:block;
	left:0;
}

JavaScript交互逻辑实现

最后,在scripts目录下创建doors.js文件,编写实现推拉门交互逻辑的JavaScript代码。


window.onload = function()
{
	var box = document.getElementById("container"); //获得容器对象
	var imgs = box.getElementsByTagName("img"); //获得图片对象数组
	imgWidth = imgs[0].offsetWidth; //图片宽度
	var exposeWidth = 100; //每张图片露出的宽度
	var boxWidth = imgWidth + exposeWidth * (imgs.length - 1);
	box.style.width = boxWidth + "px";
	
	//初始化图片位置
	function reset()
	{
		for(var i = 1; i < imgs.length; i ++)
		{
			imgs[i].style.left = imgWidth + (i - 1) * exposeWidth + "px";
		}
	} 
	reset();
	
	//开门时候每个图片应该左移的距离
	var translate = imgWidth - exposeWidth;
	//为每个图片添加事件
	for(var i = 0; i < imgs.length; i ++)
	{
		
		//自动执行函数
		(function(i){
			imgs[i].onmouseover = function()
			{
				//重置图片位置
				reset();
				for(var j = 1; j <= i; j ++)
				{
					imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + "px";
					
				}
			};
			
		})(i);
	}
};

完成上述HTML结构、CSS样式及JS逻辑的配置后,即可在浏览器中实现图片推拉门效果。

最终运行效果如图所示,截图可能未能完全呈现动态细节,但功能已完整实现。

JavaScript实现图片推拉门效果完整代码

以上即为使用JavaScript实现图片推拉门效果的详细代码实例与整合说明,希望能为读者提供实际帮助。若有任何疑问或需要进一步交流,欢迎留言,小编会及时回复。在此感谢大家对本站的支持!

作者最新文章