HammerJS连续拖动(释放后拖动)

时间:2014-06-09 21:48:09

标签: javascript angularjs hammer.js

我可以使用HammerJS(以及如何......)在发布后实现拖动吗? (我将它与AngularJS一起使用,但这无关紧要)

我问的原因是我希望实现平滑滚动(就像手指发布后本机iOS继续滚动一样)

我确信这可以通过某种方式完成,因为在手势的情况下会有一个力度属性。

我的代码在我的内容之上有一个覆盖div来检测触摸,然后我根据它手动控制下面div的滚动。

1 个答案:

答案 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);
            });
        }
    }