我想要一个尽可能短的最小JavaScript例程,当在按钮上发生鼠标按下时,它首先会像mouseclick一样做出响应,然后,如果用户按住该按钮,它就会做出响应,就好像用户在不断发送mouseclick并在一段时间后按下按钮的行为就好像用户正在加速其鼠标单击...基本上将其视为具有时间加速的按键重复。
即用户按住鼠标按钮(x =调用功能)-x___x___x___x__x__x_x_x_x_x_xxxxxxx

最佳答案

function holdit(btn, action, start, speedup) {
    var t;

    var repeat = function () {
        action();
        t = setTimeout(repeat, start);
        start = start / speedup;
    }

    btn.mousedown = function() {
        repeat();
    }

    btn.mouseup = function () {
        clearTimeout(t);
    }
};

/* to use */
holdit(btn, function () { }, 1000, 2); /* x..1000ms..x..500ms..x..250ms..x */

09-30 14:28
查看更多