JS实现简单的滑动门

这个是为了体验DOM操作的过程实现的:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>滑动门</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			#container{
				height: 275px;
				margin: 0 auto;
				border-right: 1px solid #ccc;
				border-bottom: 1px solid #ccc;
				overflow: hidden;
				position: relative;
			}
			#container img{
				position: absolute;
				display: block;
				left:0;
				border-left: 1px solid #ccc;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<img src="../img/0.png" alt="图0"  title="图0"/>
			<img src="../img/1.png" alt="图1"  title="图1"/>
			<img src="../img/2.png" alt="图2"  title="图2"/>
			<img src="../img/3.png" alt="图3"  title="图3"/>
		</div>
		<script type="text/javascript">
			window.onload = function(){
				var box = document.getElementById('container');
				var imgs = box.getElementsByTagName('img');
				// 单张 图片的宽度
				var imgWidth = imgs[0].offsetWidth;
				//设置掩藏门体露出的宽度
				var exposeWidth = 160;
				// 设置容器总宽度
				var boxWidth = imgWidth + (imgs.length - 1)*exposeWidth;
				box.style.width = boxWidth + 'px';
				
				// 设置每道门的初始位置
				function setImgsPos(){
					for(var i = 1,len = imgs.length;i< len; i++){
						imgs[i].style.left = imgWidth + exposeWidth*(i-1)+'px';
					}
				}
				setImgsPos();
				
				// 计算每道门打开时移动的距离
				var translate = imgWidth - exposeWidth;
				
				// 为每道门绑定事件
				for(var i = 0, len = imgs.length;i < len ;i++){
					//使用立即调用的函数表达式,为了获得不同的i值
					(function(i){
						imgs[i].onmouseover = function(){
							//为每道门复位
							setImgsPos();
							//打开门
							for(var j = 1;j <= i; j++){
								imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px';
							}
						}
					})(i);
				}
			}
		</script>
	</body>
</html>

实现结果:

滑动前:

滑动后:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值