2013-05-10 107 views
2

根据页面的垂直滚动角滚动我移动<div>称为container水平:平滑跨浏览器使用jQuery

scrollElement.scroll(function() { 
    var offsetLeft = scrollElement.scrollTop()/x; 
    container.css({ left: offsetLeft + 'px' }); 
}); 

这成功地创建了一个角滚动效果,当用户垂直滚动。

的滚动是在Firefox勉强可以接受,但很跳动在谷歌浏览器:Chrome浏览器出现故障时,您滚动太快,因此第一向下滚动同步在x运动和y轴,然后调整x -抵消。 但是,当您滚动过快时,Firefox会滞后。

有没有更好的方法来实现这个“对角滚动”? 是否可以使它更平滑?

我基本上希望div不要每次修正x坐标都不要向下滚动太多。

回答

0

您可以尝试它作为动画,而不是直接设置容器偏移的CSS。

scrollElement.scroll(function() { 
    var offsetLeft = scrollElement.scrollTop()/x; 

    container.stop(true, false); // Stop the current animation, likely 
           // caused by a previous scroll event fire. 
    container.animate({ left: offsetLeft + 'px' }); 
}); 
+0

谢谢。不幸的是,这加剧了第一次向下滚动然后离开的效果。我正在寻找一种方法来同步这些动作。 – 2013-05-10 07:16:19