我正在尝试构建一个非常简单的滚动条,如果图像向左无限滚动,则其中的数字。我通过克隆包含缩略图数量的主元素并将其作为同级附加到主容器来做到这一点。我遇到的问题是动画的平滑度,因为我使用 jQuery 的 css() 方法在 setTimeout() 函数中每 10ms 减去 1px。
我实际上有两个问题:
带有 clearTimeout() 的 setTimeout 是无限循环的正确方法吗
是否有使用 css() 方法平滑动画的有效方法?使用 animate() 不会矫枉过正吗?
带循环的方法:
scrollContainers : function() {
var self = this;
clearTimeout(self.timeout);
self.timeout = setTimeout(function() {
var firstContainerPosition = self.containers[0].position();
var secondContainerPosition = self.containers[1].position();
if (Math.abs(firstContainerPosition.left) > self.containerWidth) {
$(self.containers[0]).css('left', self.containerWidth);
} else {
$(self.containers[0]).css({ left : firstContainerPosition.left - 1 });
}
if (Math.abs(secondContainerPosition.left) > self.containerWidth) {
$(self.containers[1]).css({ 'left' : self.containerWidth });
} else {
$(self.containers[1]).css({ left : secondContainerPosition.left - 1 });
}
self.scrollContainers();
}, 10);
},