html li标签横向排列_JS实现图片自动滚动(图片横向滚动)

实现的效果就是 一排图片自动横向滚动,鼠标指向的时候,暂定滚动,鼠标离开,继续滚动

首先看下html代码:随便加入四张图片

<div id="div1">

<ul>

<li><img src="img/logo-black.png" alt=""></li>

<li><img src="img/logo-black.png" alt=""></li>

<li><img src="img/logo-black.png" alt=""></li>

<li><img src="img/logo-black.png" alt=""></li>

</ul>

</div>

CSS代码:

*{

margin: 0;

padding: 0;

}

#div1{

width: 712px;

height: 108px;

margin: 100px auto;

position: relative;

overflow: hidden;

}

#div1 ul{

position:absolute;

left: 0;

top: 0;

}

#div1 ul li {

float: left;

width: 178px;

height: 108px;

list-style: none;

margin-left: 10px;

}

JS代码:

<script>

window.οnlοad=function(){

var oDiv = document.getElementById('div1');

var oUl = document.getElementsByTagName('ul')[0];

var Li = oUl.getElementsByTagName('li');//获取ul下的所有li

oUl.innerHTML = oUl.innerHTML+oUl.innerHTML;//li下的内容进行想加

oUl.style.width = Li[0].offsetWidth*Li.length+'px';//ul的宽度等于每个li的宽度乘以所有li的长度

var speed = 2

//主方法

function move(){

//如果左边横向滚动了长度一半之后,回到初始位置

if(oUl.offsetLeft<-oUl.offsetWidth/speed){

oUl.style.left = '0'

}

//如果右边横向滚动的距离大于0 就让他的位置回到一半

if(oUl.offsetLeft>0){

oUl.style.left = -oUl.offsetWidth/speed+'px';

}

//oUl.style.left = oUl.offsetLeft-2+'px';//进行左横向滚动

oUl.style.left = oUl.offsetLeft+speed+'px';//进行右横向滚动

}

//调用方法

var timer = setInterval(move,30)

//鼠标指向的时候 暂停

oDiv.οnmοuseοver=function(){

clearInterval(timer);

}

//鼠标离开之后 继续滚动

oDiv.οnmοuseοut=function(){

timer = setInterval(move,30)

}

}

</script>

主要思路就是,给一个延时定时器,根据offsetLeft的变化进行横向滚动,代码的讲解都在注释中,快来试一下吧!

效果图如下:

c1b94ee0804af1f9f52ed59cd9dc07ef.png
https://www.zhihu.com/video/1231327351721979904
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值