我想让div自动滚动它的内容。内容高度是可变的。这是我设法解决的问题,但是如果我将高度设置为.childElement.outerHeight或height,它只会滚动78px,我不知道为什么。
var element = jQuery('#content');
setInterval(scrollDown(element), 1000)
function scrollDown(element) {
var childElement = element.children();
scrollAmount = childElement.outerHeight();
element.animate({ scrollTop: 1000 }, 3000, null, scrollUp(childElement));
}
function scrollUp(element) {
element.animate({ scrollTop: 0 }, 500);
}
});
非常感谢任何帮助。
谢谢, 塞巴斯蒂安
答案 0 :(得分:0)
我找到了解决方案。
主要问题是我使用document.ready
,并且div的子元素中没有所有项目,因此滚动高度不正确。我用window.load
更改了它并对滚动动画进行了一些更改。此外,参数在animate函数上也是错误的。
这是最终的,正常运作的片段。
jQuery(window).load(function () {
var element = jQuery('#content');
var childElement = element.children();
var scrollAmount = childElement.height();
var speedDown = scrollAmount * 20;
var speedUp = speedDown * 0.3;
scrollDown(element, scrollAmount, speedUp, speedDown);
function scrollDown(element, scrollAmount, speedUp, speedDown) {
element.animate({ scrollTop: scrollAmount }, speedDown, function () {
element.animate({ scrollTop: scrollAmount * -1 }, speedUp);
scrollDown(element, scrollAmount, speedUp, speedDown);
});
}
})
答案 1 :(得分:0)
在小的情况下试试这个,我的代码中有一行代表自动scrollUp和Down不停不带鼠标悬停超时停止:
jQuery(window).load(function () {
var element = jQuery('#content');
var childElement = element.children();
var scrollAmount = childElement.height();
var speedDown = scrollAmount * 50;
var speedUp = speedDown * 0.9;
scrollDown(element, scrollAmount, speedUp, speedDown);
function scrollDown(element, scrollAmount, speedUp, speedDown) {
element.animate({ scrollTop: scrollAmount }, speedDown, function () {
element.animate({ scrollTop: scrollAmount * +3 }, speedUp);
scrollDown(element, scrollAmount, speedUp, speedDown);
element.animate({ scrollTop: scrollAmount * -3 }, speedDown);
});
}
})