您当前的位置: > HTML/JS/CSS >

JS实现图片自动滚动(图片横向滚动)

发布时间:2019-05-14 10:12编辑:admin阅读(

    实现的效果就是 一排图片自动横向滚动,鼠标指向的时候,暂定滚动,鼠标离开,继续滚动
     
    首先看下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.onload=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.onmouseover=function(){
    clearInterval(timer);
    }
    //鼠标离开之后 继续滚动
    oDiv.onmouseout=function(){
    timer = setInterval(move,30)
    }
     
     
     
    }
    </script>
    主要思路就是,给一个延时定时器,根据offsetLeft的变化进行横向滚动
    --------------------- 
    作者:张芝山 
    来源:CSDN 
    原文:https://blog.csdn.net/zhangzeshan/article/details/84030340 
    版权声明:本文为博主原创文章,转载请附上博文链接!