JQuery在滚动脚本中添加setInterval()

时间:2016-01-14 11:16:36

标签: javascript jquery

我在此滚动新闻脚本中添加setInterval()函数时遇到了困难:

jQuery.fn.liScroll = function(settings) {
  settings = jQuery.extend({
    travelocity: 0.03
  }, settings);

  return this.each(function() {
    var $strip = jQuery(this);
    $strip.addClass("newsticker")
    var stripHeight = 1;
    $strip.find("li").each(function(i) {
      stripHeight += jQuery(this, i).outerHeight(true);
    });
    var $mask = $strip.wrap("<div class='mask'></div>");
    var $tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>");
    var containerHeight = $strip.parent().parent().height();
    $strip.height(stripHeight);
    var totalTravel = stripHeight;
    var defTiming = totalTravel / settings.travelocity;

    function scrollnews(pace, temp) {
      $strip.animate({
        top: '-=' + pace
      }, temp, "linear", function() {
        $strip.css("top", containerHeight);
        scrollnews(totalTravel, defTiming);
      });
    }
    scrollnews(totalTravel, defTiming);
    $strip.hover(function() {
        jQuery(this).stop();
      },
      function() {
        var offset = jQuery(this).offset();
        var residualSpace = offset.top + stripHeight;
        var residualTime = residualSpace / settings.travelocity;
        scrollnews(residualSpace, residualTime);
      });
  });
};

我已在最后两个括号中添加了此代码:

setInterval("jQuery.fn.liScroll.travelocity()", 1000);  

在剧本的最后:

$(function(){
  $("ul#ticker01").liScroll();
});

脚本正在运行,但是当它到达最后一个-li-时,它不再重复整个事情。任何提示?

1 个答案:

答案 0 :(得分:1)

不幸的是,您提供的笔中没有任何反应。

但是,jQuery.fn.liScroll.travelocity没有在任何地方定义。所以,你不能在间隔中调用它。

您可能想做的就是:

$(function () {
    setInterval(function () { 
        $("ul#ticker01").liScroll(); 
    }, 1000);
});