想做一个模仿弹幕效果,但是不能循环执行,只执行一次!

解决方案 »

  1.   

    window.setInterval("a()","5000")  或者   window.setInterval(a,"5000")   a是方法名 ,你这么写 是把方法的返回值做为定时执行的方法了
      

  2.   

    源码
    html:<div class="tanmu">
    <div style="display: inline-block;"  class="barragewidth barragewidth1  clearfix yizhi">
      <img  class="fl" src="img/peopletitle.png">
      <a class="fl">海绵宝宝</a>
      <span class="fl">支持了他</span>
      </div>
    </div>
    <div class="tanmu">
    <div style="display: inline-block;"  class="barragewidth barragewidth2 clearfix yizhi">
      <img  class="fl" src="img/peopletitle.png">
      <a class="fl">青春的脚印</a>
      <span class="fl">支持了他</span>
      </div>
    </div>
    <div class="tanmu">
    <div style="display: inline-block;"  class="barragewidth barragewidth3 clearfix yizhi">
      <img  class="fl" src="img/peopletitle.png">
      <span class="fl">哇,厉害了,我要“三顾茅庐”</span>
      </div>
    </div>
    js:
    setInterval(function () {
                $('.barragewidth1').animate({"right": "6.7rem"},3000);
            }, 5000);
            setInterval(function () {
                $('.barragewidth2').animate({"right": "6.7rem"},4000);
            }, 2000);
            setInterval(function () {
                $('.barragewidth3').animate({"right": "6.7rem"},3000);
            }, 3000);
            setInterval(function () {
                $('.barragewidth4').animate({"right": "6.7rem"},3500);
            }, 4000);
      

  3.   

    function a() {
                $('.barragewidth1').animate({"right": "6.7rem"},3000);
            }setInterval(a, 5000);



    function b() {
                $('.barragewidth2').animate({"right": "6.7rem"},4000);
            }

            setInterval(b, 2000);

    function c() {
                $('.barragewidth3').animate({"right": "6.7rem"},3000);
            }

            setInterval(c, 3000);


    function d() {
                $('.barragewidth4').animate({"right": "6.7rem"},3500);
            }
            setInterval(d, 4000);
      

  4.   

    这个方法我试过了不行,因为执行了那个动画后,元素就已经在right 6.5rem的位置了,再执行没有用!
      

  5.   

    你想要什么效果?
    4个setInterval()计时器是同时计时的,不是一个执行完下一个再开始计时。再有,你要怎么循环,第一次 $('.barragewidth1').animate({"right": "6.7rem"},3000);执行后right已经是6.7rem了,下次再执行就没有效果了
      

  6.   

    你animate完了之后,想再animate要先复位啊
    你仔细研究一下animate是啥, jq的animate是可有有回调函数的
    如: animate({},3000,function(){
     //这里是动画执行完之后要干什么
    })
      

  7.   

    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <style type="text/css">
    .barragewidth{position: absolute}
    </style>
    <div class="tanmu">
    <div style="display: inline-block;"  class="barragewidth barragewidth1  clearfix yizhi">
      <img  class="fl" src="img/peopletitle.png">
      <a class="fl">海绵宝宝</a>
      <span class="fl">支持了他</span>
      </div>
    </div>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
    <script type="text/javascript">
    setInterval(function () {
    $('.barragewidth1').animate({"left": "0rem"},1000)
                $('.barragewidth1').animate({"left": "100%"},3000);
            }, 5000);
     </script>
    </body>
    </html>