这个函数应该向下从页面下方215个像素的顶部在20ms的滚动,越来越延迟,从而使第一window.scrollTo事件发生在10毫秒,接下来,等等。
最后一行应以2150毫秒所以在所有需要约2秒延迟。
相反,它会立即向下滚动215个像素的一次。
function scrollDown() {
var yFinal=216, delay=0;
for (y=0; y<yFinal; y++) {
delay = delay+10
setTimeout(function() {
window.scrollTo(100,y);
},delay);
}
}
悲伤的脸。 为什么?
[编辑:感谢您的帮助! 我用它来写这个最终的解决方案,它是更复杂一点,我在这里提供它的任何人都懵了。 它在第一,然后缓慢滚动快。 正是我想要的。 使用的setTimeout insteat的setInterval的,它可以让你的速度曲线进行更多的控制,所以你可以很容易使其成倍减缓]
function showCategory(categoryId)
{
var yInitial=document.body.scrollTop,
yFinal=216,
delay=0;
if (yInitial<yFinal)
{
yInitial=(yFinal-yInitial)/1.3+yInitial;
window.scrollTo(100, yInitial);
for (var yCurrent = yInitial; yCurrent < yFinal; yCurrent+=2)
{
delay += 30;
(function(position)
{
setTimeout(function()
{
window.scrollTo(100, position);
}, delay);
})(yCurrent);
}
}
}