javascript - div滚动的无限循环

标签 javascript jquery css jquery-plugins

我正在尝试在 http://www.hubspot.com/ 上实现推文滚动条 |

enter image description here

我猜这是使用来自 http://code.divshot.com/tweetscroller/ 的 tweet-scroller

但由于演示无法正常运行,此链接已断开。

我在寻找替代方案。

我找到了 http://jsfiddle.net/doktormolle/4c5tt/

HTML:

<ul class="slide">
  <li><img src="http://www.google.com/logos/2010/canadianthanksgiving2010-hp.jpg"/></li>
  <li><img src="http://www.google.com/logos/2010/germany10-hp.gif"/></li>
  <li><img src="http://www.google.com/logos/stpatricks_02.gif"/></li>
</ul>

CSS:

 ul.slide{margin:0;
      padding:0;
      height:80px;
      list-style-type:none;}
 ul.slide li{float:left;
         list-style-type:none;}
 ul.slide img{border:1px solid silver;
         height:80px;}

JS:

 //Plugin start
(function ($) {
    var methods = {
     init: function (options) {
         return this.each(function () {
             var _this = $(this);
             _this.data('marquee', options);
             var _li = $('>li', _this);

             _this.wrap('<div class="slide_container"></div>')
                 .height(_this.height())
                 .hover(function () {
                         if ($(this).data('marquee').stop) {
                             $(this).stop(true, false);
                         }
                     },
                     function () {
                         if ($(this).data('marquee').stop) {
                             $(this).marquee('slide');
                         }
                     })
                 .parent()
                 .css({
                     position: 'relative',
                     overflow: 'hidden',
                     'height': $('>li', _this).height()
                 })
                 .find('>ul')
                 .css({
                     width: screen.width * 2,
                     position: 'absolute'
                 });

             for (var i = 0; i < Math.ceil((screen.width * 3) / _this.width()); ++i) {
                 _this.append(_li.clone());
             }

             _this.marquee('slide');
         });
     },

     slide: function () {
         var $this = this;
         $this.animate({
                 'left': $('>li', $this).width() * -1
             },
             $this.data('marquee').duration,
             'swing',
             function () {
                 $this.css('left', 0).append($('>li:first', $this));
                 $this.delay($this.data('marquee').delay).marquee('slide');

             }
         );

     }
     };

     $.fn.marquee = function (m) {
     var settings = {
         'delay': 2000,
         'duration': 900,
         'stop': true
     };

     if (typeof m === 'object' || !m) {
         if (m) {
             $.extend(settings, m);
         }

         return methods.init.apply(this, [settings]);
     } else {
         return methods[m].apply(this);
     }
 };
 })(jQuery);

 //Plugin end

 //call
 $(document).ready(
 function () {
     $('.slide').marquee({
         delay: 3000
     });
 }
 );

我做了一点修改就可以正常工作了

http://jsfiddle.net/3pZwR/1/

唯一的问题是它在滚动每个 div 后停止。

我希望它是无限滚动的效果而不会停止。就像在 hubspot 上一样。

最佳答案

您应该使用另一种 JQuery Easing 方法而不是“swing”。 查看 JQuery 网站上的 Easings:http://api.jqueryui.com/easings/

关于javascript - div滚动的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22906604/

相关文章:

javascript - 基于Jquery eq隐藏div

javascript - html表格行高问题

jQuery:随机定位的 div

css - Windows 版 Safari 5.0.5 中 <selects> 的宽度

javascript - Framer.js : how do you get the "previous" layer?

php - 为什么我的 textarea 文本没有按预期显示/隐藏?

javascript - 用 vs 2008 调试?

javascript - 像 öüä 这样的特殊字符的按键会触发 2 次并输出没有 ' ¨ ' 的字符

javascript - 使用 python 和 Flask 的加载器

javascript - JQuery 设置 CSS Transform, Translate 类中的属性