js实现图片无缝向左轮播

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
<style>
    *{margin: 0;padding: 0;}
    ul, li{list-style: none;}
    .js-mask{width: 198px;height: 132px;border: 1px solid black;position: relative;overflow: hidden;margin:100px;}
    .js-mask ul{position: absolute; left:0; top:0;}
    .js-mask ul li{float:left; width:198px; height: 132px;}
    .js-mask ul li img{width: 198px; height: 132px;}
</style>
    </head>
    <body>
<div class="js-mask">
    <ul>
        <li><img src="img/1.jpg"/> </li>
        <li><img src="img/2.jpg"/> </li>
        <li><img src="img/3.jpg"/> </li>
        <li><img src="img/4.jpg"/> </li>
    </ul>
</div>
<script>
(function(){
    var oUl = document.querySelectorAll('.js-mask ul')[0];
    //console.log(oUl.innerHTML + oUl.innerHTML);
    // 获取ul里的li进行拼接,然后重新赋给ul
    oUl.innerHTML = oUl.innerHTML + oUl.innerHTML // oUl.innerHTML += oUl.innerHTML
    // 由于ul初始时是4张图片的宽度,现在把宽度变成是8张的宽度
    // 获取li,根据li的宽度重新设置ul的宽度
    var oLies = document.querySelectorAll('.js-mask li');   // 获取li
    oUl.style.width = oLies[0].offsetWidth * oLies.length + 'px';   // 设置宽度,li的宽度*li的个数

    var speed = -1;

    setInterval(function(){
        if (oUl.offsetLeft <= -oUl.offsetWidth*.5){
            oUl.style.left = '0px'; 
        }

        oUl.style.left = oUl.offsetLeft + speed + 'px';
    }, 1000/30);
})();

</script>
    </body>
</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值