【发布时间】:2012-12-20 16:21:09
【问题描述】:
我已经做到了这一点,它适用于实心宽度的 div,但不知道如何在 div 的宽度发生变化时对其进行操作。
问题:如何让这个函数考虑每个“轮”后不同的 div 宽度?
var horizontalScroller = function($elem) {
var left = parseInt($elem.css("left"));
var temp = -1 * $('#horizontalScroller li').width();
if(left < temp) {
left = $('#horizontalScroller').width();
$elem.css("left", left);
}
$elem.animate({ left: (left-60) }, 2000, 'linear', function () {
horizontalScroller($(this));
});
}
$(document).ready(function() {
var i = 0;
$("#horizontalScroller li").each(function () {
$(this).css("left", i);
i += $(this).width();
horizontalScroller($(this));
});
});
工作示例(固定宽度):http://jsfiddle.net/GL5V3/
工作示例(不同宽度):http://jsfiddle.net/wm9gt/
【问题讨论】:
-
你想做什么,“让它工作”是什么意思?
-
如果你看一下 jsfiddle,你会看到不同的宽度是如何相互碰撞的。这是我试图避免的,因此使它像固定宽度的例子。
-
好吧 - 我知道您需要将 i+=60 更改为反映每个列表项的各个宽度的值。
-
它不应该与
(left-60)有任何关系,只是当它有另一个“回合”要做时,这一切都很奇怪。 -
你在做水平滚动有点奇怪。我认为要求是水平环绕和基于时间的“运动”?
标签: javascript jquery horizontal-scrolling absolute