js实现图片推拉门效果代码实例

 更新时间:2019年05月18日 14:37:42   作者:嘴角邪恶的弧线  
这篇文章主要介绍了js实现图片推拉门效果代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

初学者。

推拉门是网页中常见的一种形式,通过JS实现比较简单。主要是通过getElement找到节点元素,然后对其进行相应的赋值即可。

新建一个index.html文件,并在同一个目录中添加三个文件夹,images(用来当作“门”的图片),styles(用来存放css文件),scripts(用来存放js文件)。然后在index.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>

接着是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;
}

然后是scripts目录下的doors.js:

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);
	}
};

这样即可实现推拉门效果。

效果如下,截图略微粗糙

以上所述是小编给大家介绍的js实现图片推拉门效果代码实例详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • JavaScript中split()方法举例详解

    JavaScript中split()方法举例详解

    这篇文章主要给大家介绍了关于JavaScript中split()方法的相关资料,split()方法在js处理字符串是很常见,也是很重要的一种方法必须熟练掌握,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 微信小程序里长按识别二维码的实现过程

    微信小程序里长按识别二维码的实现过程

    这篇文章主要给大家介绍了关于微信小程序里长按识别二维码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • JavaScript通过极大极小值算法实现AI井字棋游戏

    JavaScript通过极大极小值算法实现AI井字棋游戏

    极小极大值搜索算法是一种零和算法,是用来最小化对手的利益,最大化自己的利益的算法。极小极大之搜索算法常用于棋类游戏等双方较量的游戏和程序,算是一种电脑AI算法。本文将介绍通过这个算法实现的一个井字棋游戏,需要的可以参考一下
    2021-12-12
  • IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结

    IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结

    最近发现的Web项目在IE6下出现背景图片不缓存的问题,在网上搜索了一番,发现已经是众所周知的BUG,这里就总结一下各种解决办法
    2012-05-05
  • JavaScript prototype属性使用说明

    JavaScript prototype属性使用说明

    prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!
    2010-05-05
  • 前端JS压缩图片的原理详解(附源码)

    前端JS压缩图片的原理详解(附源码)

    上传图片/视频/文件是我们经常会遇到的问题,但是一旦图片过大就会导致不好的操作体验,下面这篇文章主要给大家介绍了关于前端JS压缩图片原理及实现的相关资料,需要的朋友可以参考下
    2024-06-06
  • jfreechart插件将数据展示成饼状图、柱状图和折线图

    jfreechart插件将数据展示成饼状图、柱状图和折线图

    闲暇之余,学习了一下jfreechart图表生成,结合大虾们的著作,小弟进行了系统的总结,真是获益匪浅,这里推荐给小伙伴们,有需要的朋友可以参考下。
    2015-04-04
  • JS组件系列之JS组件封装过程详解

    JS组件系列之JS组件封装过程详解

    JS组件的扩展和封装,我们来感受下JQuery为我们提供$.Extend的神奇,接下来通过本文给大家分享JS组件系列之JS组件封装过程详解,需要的朋友参考下吧
    2017-04-04
  • JavaScript二维数组实现的省市联动菜单

    JavaScript二维数组实现的省市联动菜单

    这篇文章主要介绍了使用二维数组实现的省市联动菜单,通过二维数组存储城市列表项,需要的朋友可以参考下
    2014-05-05
  • 详解CocosCreator MVC架构

    详解CocosCreator MVC架构

    这篇文章主要介绍了CocosCreator MVC架构,同学们在制作游戏过程中,尽量使用一些架构,会避免很多问题
    2021-04-04

最新评论