2010-07-15 67 views
4

我创建一个水平部位(也有可能是其他任何自动滚动的网站,如对角线)Jquery.ScrollTo工作,它使用$ .Localscroll孩子从Jquery.ScrollTo插件。制作基于速度,而不是持续时间

这个插件有一个大问题;它根据持续时间计算运动。这意味着从页面1到2的过渡占用了2秒,但是从第1页到10的过渡也占用了2秒,使其转变如此之快,转型本身是不是真的看到了。我不知道会有多少链接,链接将不在同一个菜单中,而是分散在各个页面中。

有没有办法找到当前的scrollto位置(最好通过插件,所以它是跨浏览器),并使用散列(#)找出新的scrollto值,然后根据速度计算持续时间?

回答

1

你可以得到$("element").scrollTop()的scrollTop的值。你可以做一些计算并根据它设置时间长度。

0

你可以说多少像素应该在持续移动。在这种情况下是50px/10ms。

例如:

var scrollOffset = root.scrollTop, 
    offset  = element.offsetTop, 
    speed  = 50; 

function scrollLoop() { 

    if (offset >= scrollOffset) { 
    return; 
    } 

    scrollOffset -= speed; 

    root.animate({ scrollTop: scrollOffset }, 10, function() { 
    scrollLoop(); 
    }); 
} 
相关问题