我想做一个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);
}
});任何帮助都是非常感谢的。
谢谢,塞巴斯蒂安
发布于 2013-03-21 05:19:23
我已经找到解决方案了。
主要问题是我使用了document.ready,而div的子元素没有包含其中的所有项,因此滚动高度不正确。我已经用window.load改变了这一点,并对滚动动画做了一些修改。此外,动画功能上的参数也是错误的。
这是最终的,工作正常的代码片段。
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);
});
}
})发布于 2015-11-21 02:04:52
在small上试一下,我在你的代码中有一小行代码,用于自动scrollUp和Down non-stop,而不是鼠标悬停超时停止:
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);
});
}
})https://stackoverflow.com/questions/15532986
复制相似问题