JavaScript实现图片的无缝滚动

html部分

//展示窗口
<div class="showWin">
	//包裹图片的div
	<div class="wrapper">
		<img src="img/1.jpg" title="小奶妈">
		<img src="img/2.jpg" title="大乔">
		<img src="img/3.jpg" title="李白">
		<img src="img/4.jpg" title="杨玉环">
		<img src="img/5.jpg" title="刘备">
	</div>
</div>

css部分

*{
	margin: 0;
	padding: 0;
}
.showWin{
	width: 700px;
	height: 279px;
	position: relative;
	border: 1px solid gray; 
	overflow: hidden;//溢出隐藏
}
.wrapper{
	width: 2500px;
	height: 279px;
	position: absolute;//为包裹图片的div设置绝对定位
}
img{
	float: left;
}

js代码部分

//先获取两个div
var win = document.getElementsByClassName('showWin')[0];
var wrap = document.getElementsByClassName('wrapper')[0];
//新创建一个div,将wrap里的图片复制一份
var wrap2 = document.createElement('div');
wrap2.innerHTML = wrap.innerHTML;
wrap2.className = wrap.className;
win.appendChild(wrap2);//将这个新创建的div添加到展示窗口win中
var left = 0;//第一个包裹图片的div的距离浏览器的left
var left2 = 2500;//新创建的div距离浏览器左边的位置
function show(){
	//两个div都逐渐向左移
	left --;
	left2 --;
	wrap.style.left = left + 'px';
	wrap2.style.left = left2 + 'px';
	//当第一个包裹图片的div不可见之后
	if(left <= -2500){
		//将它放到第二个div的后面去
		left = 2500;
	}
	//当第二个div也走完之后,再将它放到后面去,这样就能实现图片的无缝滚动啦
	if(left2 <= -2500){
		left2 = 2500;
	}
}
//鼠标移入时,图片停止滚动
win.onmouseover = function(){
	clearInterval(timer)
}
//鼠标移出,图片继续滚动
win.onmouseout = function(){
	timer = setInterval(show,20)
}
//创建定时器,20毫秒执行一次show函数
var timer = setInterval(show,20)

以下是实现效果图,将就着看吧
运行效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值