用jquery实现图片左右自动循环滚动

  最近要实现一个项目的一个图片循环左右滚动的效果,做了好久也没有搞出来,不是不会,而是忽略了一个细节。

百度了好久,也没有看出来有什么不同,定时器啥的都定义好了,然而它就是不动,简直是碉堡了,之后仔细看,才发现我的ul的样式设置得有问题,原理上应该是外层div的宽度固定,并且overflow属性设置为hidden,然而这并不够,还要设置ul的宽度大于外层div的宽度

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>javascript test</title>
    <style type="text/css">
.picture{
    width:1030px;
    border:1px solid black;
    position: relative;
    height: 120px;
    margin: 10px auto 0;
    overflow: hidden;
}
.picture ul{
    position: relative;
    padding: 0;
    width: 3062px;
    margin:0;
}
.picture li{
    width: 162px;
    height: 100px;
    float: left;
    display: inline-block;
    margin:10px 9.4px 10px 0;
}
.picture li:first-child{
    margin-left: 0;
}
.picture li:last-child{
}
.picture li img{
    height: 100%;
    width: 100%;
    border:none;
}


    </style>
</head>
<body>
      <div id="picture">
          <ul id="area1">
                <li><img src="5.jpg" alt=""></li>
                <li><img src="6.jpg" alt=""></li>
                <li><img src="7.jpg" alt=""></li>
                <li><img src="8.jpg" alt=""></li>
                <li><img src="1.jpg" alt=""></li>
                <li><img src="2.jpg" alt=""></li>
                <li><img src="3.jpg" alt=""></li>
                <li><img src="2.jpg" alt=""></li>
                <li><img src="3.jpg" alt=""></li>
            </ul>
        </div>
</body>
<script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
      var speed = 10;
      var picture = $('#picture');
      var ul = $('ul',picture);
      var li = $('li',ul);
      ul.append(li.slice(0,6).clone()) ;
      alert(ul.width());
       var timer = setInterval(Marquee,speed);
       alert(picture.scrollLeft());

       picture.hover(function() {
                clearInterval(timer);
                },function(){
                //离开继续调用
                timer=setInterval(Marquee,speed);
                });
       function Marquee(){
              if(picture.scrollLeft()>= 1540){
                picture.scrollLeft(0);
            }
            else
            {
                picture.scrollLeft(picture.scrollLeft()+1);
            }
      }
     console.log(picture.scrollLeft());
 </script>
</html>

这些jquery代码相信一般的人都能看懂,这里就不解释了,有一点很关键,就是为了展示循环的效果,需要将页面中的li追加到已有的li后面,还有就是这里我的js代码picture.scrollLeft()>= 1540中设置的是1540,其实这个值是随便设的,只要你达到你想要的效果就行,还是掌握的知识不够精细啊

转载于:https://my.oschina.net/sunshinewyf/blog/529563

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值