我可以使用HammerJS(以及如何......)在发布后实现拖动吗? (我将它与AngularJS一起使用,但这无关紧要)
我问的原因是我希望实现平滑滚动(就像手指发布后本机iOS继续滚动一样)
我确信这可以通过某种方式完成,因为在手势的情况下会有一个力度属性。
我的代码在我的内容之上有一个覆盖div来检测触摸,然后我根据它手动控制下面div的滚动。
答案 0 :(得分:2)
您只需要在panend上设置自己的速度回调。像下面这样的东西应该有效(假设使用Hammer v2)
var friction = -0.05;
function panend(evt) {
applyVelocity(evt.velocityY,evt.direction);
}
function applyVelocity(v,dir) {
var dist = v*16;
if(dir===Hammer.DIRECTION_DOWN) {
dist*=-1;
}
//code here to move your elements Y transform
if(v>0) {
v+=friction;
window.requestAnimationFrame(function(){
applyVelocity(v,dir);
});
}
}