实现常见简单无缝滚动

无缝滚动

HTML代码(不要忘记修改图片路径呦)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无缝滚动</title>
</head>

<body>
<div id="wai">
<div id="zuo">向左</div>
<div id="you">向右</div>
<div id="nei">
	<ul>
    	<li><a href="#"><img src="1.jpg"/></a></li>
    	<li><a href="#"><img src="2.jpg"/></a></li>
        <li><a href="#"><img src="3.jpg"/></a></li>
        <li><a href="#"><img src="4.jpg"/></a></li>

    </ul>
</div>
</div>
</body>
</html>

css代码

<style>
	*{
		margin:0px; padding:0px;
	}
	#wai{
		width:100%;
		height:500px;
		
		position:relative;	
	}
	#nei{
		width:700px;;
		height:240px;
		
		position:relative;
		left:50%;
		margin-left:-350px;
		top:50%;
		margin-top:-120px;
		overflow:hidden;
	}
	ul{
		position:absolute;
		height:240px;
		
		left:0px;
		top:0px;
	}
	ul li{
		list-style:none	
	}
	ul li a{
		display:block;	
		float:left;
		margin:20px;	
		width:200px;
		height:200px;	
	}
	ul li a img{
		width:200px;	
		height:200px;
	}
	#zuo{
		width:50px;
		height:50px;
		background-color:#0FF;
		position:absolute;
		left:100px;
		top:300px;	
		border-radius:25px;
		text-align:center;
		line-height:50px;
	}
	#you{
		width:50px;
		height:50px;
		background-color:#0FF;
		position:absolute;
		right:100px;
		top:300px;	
		border-radius:25px;
		text-align:center;
		line-height:50px;
	}
</style>

js代码

<script>
	window.onload=function(){
		var wai = document.getElementById('wai');
		var uls = document.getElementsByTagName('ul')[0];
		var lis = document.getElementsByTagName('li');
		var zuo = document.getElementById('zuo');
		var you = document.getElementById('you');
		var sudu= -5;	//正往右移动负往左移动
		var times=null; //定时器
		uls.innerHTML+=uls.innerHTML;//复制ul并赋值给ul自己
		uls.style.width=lis[0].offsetWidth*lis.length+'px';
		times=setInterval(function (){
		uls.style.left=uls.offsetLeft+sudu+'px';  //offsetLeft 获取的是相对于父对象的左边距      +sudu 让图片动起来
			if(uls.offsetLeft<-uls.offsetWidth/2){ 	
					uls.style.left='0px';//当ul向左移动超过ul宽度的50% 重新归零
			}else if(uls.offsetLeft >= 0){//向右移动时当ul左侧距离父标签大于等于0时重新归为-50%
					uls.style.left= -uls.offsetWidth/2+'px';
			}
			},30);
		zuo.onclick = function(){ //当点击向左时 图片向左移动
			sudu = -5;
		}
		you.onclick = function(){ //当点击向右时 图片向右移动
			sudu = 5;
		}
		uls.onmouseover=function(){//ul获取焦点时停止移动
			clearInterval(times);//关闭定时器
		}
		uls.onmouseout=function(){//ul失去焦点时重启定时器
			times=setInterval(function (){
			uls.style.left=uls.offsetLeft+sudu+'px';  //offsetLeft 获取的是相对于父对象的左边距      +sudu 让图片动起来
			if(uls.offsetLeft<-uls.offsetWidth/2){
					uls.style.left='0px';
			}else if(uls.offsetLeft >= 0){
					uls.style.left= -uls.offsetWidth/2+'px';
			}
			},30);
		}
		}
		
</script>

复制以上代码 一个简单的无缝滚动就完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值