JS:在数学上减少事件监听器内的缩放值

时间:2012-05-28 14:33:45

标签: javascript jquery mobile gesture addeventlistener

我这样做:

$(document).ready(function() {

    var dom = document.body,
        fs = 16,
        min = 16,
        max = 100,
        scale;

    dom.addEventListener("gesturechange", gestureChange, false);

    function gestureChange(e) {

        e.preventDefault();

        scale = e.scale;
        fs = Math.round(fs*scale);

        if ( fs <= max && fs >= min )
            $('#element').css('width', fs+'px');

        if ( fs > max ) fs = max;
        if ( fs < min ) fs = min;
    }

});

因此,当我在iPhone上进行捏合/缩放手势时,#element的宽度会增加。 fs是它增加的值。但是现在缩放和增加的速度太快了。因此,只要我的手指在屏幕上稍微移动一下,宽度的增加就会很大。

我想知道如何以及如果我可以将fs值“乘以”(或者其他)一定量,以便整个体验变慢?我只是想让我的变焦发生得慢一些。

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:1)

只需将您自己的比例因子应用于整个比例计算:

var myScale = 5; // Test which value is best suited for your needs
fs = Math.round(fs*(scale/myScale));