我有一个小问题与jQuery周期插件和它的超时。
我正在使用scrollLeft
效果,并希望让它始终保持滚动(类似于新闻行情,如果你知道我的意思)。现在使用timeout: 0
将无法工作,因为它将完全禁用自动滚动。
所以我想到使用timeout: 10
(有一个几乎不明显的超时),但这不起作用,因为无论我设置的超时有多低,超时似乎总是大约一秒钟(即使使用timeout: 1
)。
为了更清楚一点:
将超时时间增加到timeout: 10000
有预期的效果,并暂停滑动10秒,但将其减少到timeout: 1
看起来就像我使用timeout: 1000
我不确定问题在哪里,因为我在谷歌寻找最小超时,但找不到任何说超时最小值是1000
我使用的脚本非常简单,所以我认为那里应该没有错误,但只是为了让你也可以检查我发布它:
$('#demo').cycle({
slideExpr: 'p',
fx: 'scrollLeft',
next: '.next',
speedIn: 5000,
speedOut: 5000,
fastOnEvent: 1000,
containerResize: 0,
pause: 1,
timeout: 10
});
我希望我能很好地解释我的问题:)
问候!
注。我不想使用某种newsticker插件,但我真的想用cycle来创建这种效果。
如果需要真正连续的滚动,可以使用easeIn
和easyOut
选项。试试这个:
$('#demo').cycle({
fx: 'scrollHorz',
continuous: 1,
easeIn: 'linear',
easeOut: 'linear'
});
jQuery Cycle有一个叫continuous的选项,这是最接近于传统新闻播报器的插件。试试以下命令:
$('#demo').cycle({
fx: 'scrollLeft',
continuous: 1
});
我希望这对你有帮助!
编辑:忽略这个答案,因为它需要更改代码。使用上面回答的continuous
选项
在buildOptions()函数中找到以下代码
var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
while((opts.timeout - opts.speed) < buffer) // sanitize timeout
opts.timeout += opts.speed;*/
和注释while循环
var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
/*while((opts.timeout - opts.speed) < buffer) // sanitize timeout
opts.timeout += opts.speed;*/