我想通过将body / html框架移动到顶部/向上任意数量来模拟滚动。我知道jQuery滚动或动画功能,.scroll()
和.animate()
。但是我决定不使用它,因为它在动画发生时仍然在进行scrollTop
得到animate
和.scroll()
jQuery本机函数之间的.scroll
属性之间发生冲突称为..
我现在的计划是通过将body / html框架尽可能平滑地移动到顶部来模拟滚动,然后在发生本地scroll
时停止(清除间隔){{{ 1}}被调用)。
我可以在调用.scroll()
时停止setInterval
动画,但我仍然无法将html对象移动到我想要“滚动”的数量(其中意味着我的代码只能部分工作)。
这是我到目前为止所做的:
.scroll()
感谢任何建议/答案。谢谢!
答案 0 :(得分:0)
在更改Y值时使用window.scrollTo(0,Y)
。
答案 1 :(得分:0)
这样可行,但我不认为这是你正在寻找的东西,因为它不会滚动页面 - 它正在移动内容......
var scrollTop = 1;
var fakeScroll = setInterval(function() {
console.log(scrollTop);
var animObj = $('html,body');
animObj.offset({ top: animObj.offset().top - scrollTop })
}, 500);
$(document).scroll(function() {
clearInterval(fakeScroll);
});
答案 2 :(得分:0)
在不使用计时器的情况下解决了此问题。事实证明,本机滚动事件和jQuery动画是两个不同的滚动事件。我所做的几乎是听取来自本机滚动(DOMMousewheel和鼠标滚轮)的特定滚动事件,然后当它发生时,我停止动画。谢谢你的回复!