我正在尝试将一些iPhone风格的滚动惯性添加到只能在iPad上查看的网页上。
我在一个方向上滚动(scrollLeft),但它在另一个方向上不起作用。这是一个非常简单的功能
function onTouchEnd(event){
event.preventDefault();
inertia = (oldMoveX - touchMoveX);
// Inertia Stuff
if( Math.abs(inertia) > 10 ){
$("#feedback").html(inertia);
$("#container").animate({
'scrollLeft': $("#container").scrollLeft() + (inertia * 10)
}, inertia * 20);
}else{
$("#feedback").html("No Inertia");
}
}
我把它绑在身上的'touchend'事件上。 intertia是触摸结束时旧的moveX位置和最新的moveX位置之间的差异。
然后我尝试为包含一堆缩略图的div的scrollLeft属性设置动画。正如我所说的,当向左滚动时这是有效的,但在向右滚动时则不行。
有什么想法吗?
答案 0 :(得分:4)
“animate(...)”的第二个参数是持续时间,它不能是负数。
尝试:
...
$("#container").animate({
'scrollLeft': $("#container").scrollLeft() + (inertia * 10)
}, Math.abs(inertia * 20));
...