我有一个包含多个图像的div,隐藏了溢出,慢慢向下滚动。我想,当滚动到达底部时,克隆第一个元素并将其附加到底部,因此它将继续滚动。
到目前为止,我已经完成了所有这些,除了它不会保持滚动,因为scrollHeight属性仍然是原始值。有没有办法更新div的scrollHeight值?
到目前为止我的脚本:
$(document).ready(function() {
$("#carousel").scrollTop(0);
intervalID = setInterval("scrollCarousel()",50);
carousel = document.getElementById("carousel");
});
function scrollCarousel() {
if ( $("#carousel").scrollTop() > $("#carousel:first").height() ||
$("#carousel").scrollTop() + carousel.offsetHeight >
carousel.scrollHeight ) {
elem = $("#carousel").children(':first-child').clone();
console.debug(elem);
elem.appendTo($("#carousel"));
carousel.scrollHeight += elem.height;
}
else {
$("#carousel").scrollTop( $("#carousel").scrollTop() + 1 );
}
}
答案 0 :(得分:1)
你走了:
http://jsfiddle.net/Paulpro/bPrY7/
你有一些错误:
首先,你不应该在setInterval中放一个字符串。特别是当你只是在调用一个函数时。由于字符串由eval解析,因此它们非常慢。
其次,当您将元素附加到底部时,您希望从顶部删除元素,然后相应地调整滚动位置。
当你已经拥有DOM元素时,$(“#carousel”)也比$(carousel)慢得多。
答案 1 :(得分:0)
只是一个想法,如果你可以静静地将第一个孩子放在旋转木马的末尾,你可以避免克隆,从而避免问题。
希望这会有所帮助。 问候。