我想要一个简短的最小可能的javascript例程,当按钮发生mousedown时,它首先响应就像一个鼠标点击然后如果用户按下按钮它会响应,就好像用户不断发送鼠标点击一段时间一样按住按钮的行为好像用户正在加速他们的鼠标点击...基本上把它想象成一个按键重复加速的时间。
即用户按住鼠标按钮(x =调用功能) - x___x___x___x__x__x_x_x_x_xxxxxxx

===============>>#1 票数:17 已采纳

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 */

===============>>#2 票数:4

当按下按钮,拨打window.setTimeout与你预期的时间和功能的x ,并在结束时再次设置定时器x ,但这次用较小的区间。

在释放鼠标按钮时使用window.clearTimeout清除超时。

===============>>#3 票数:1

只需在OnMouseDown中放置以下toggleOn,并在按钮的OnMouseUp中放置toggleOff。

var tid = 0;
var speed = 100;

function toggleOn(){
    if(tid==0){
        tid=setInterval('ThingToDo()',speed);
    }
}
function toggleOff(){
    if(tid!=0){
        clearInterval(tid);
        tid=0;
    }
}
function ThingToDo{

}

===============>>#4 票数:-1

我刚刚发布了一个jQuery插件,请在此repo上查看此演示

$('button').clickAndHold(function (e, n) {
    console.log("Call me baby ", n);
});

===============>>#5 票数:-1

像下面的伪代码可能会工作..

var isClicked = false;
var clickCounter = 100;
function fnTrackClick(){
   if(isClicked){
      clickCounter--;
      setTimeout(clickCounter * 100, fnTrackClick);
   }
}

<input type="button" value="blah" onmousedown="isClicked=true;" onmouseover="fnTrackClick();" onmouseup="isClicked = false;" />

  ask by zurk translate from so

未解决问题?本站智能推荐:

2回复

按住鼠标左键时,javascript mouseleave / mouseenter将不会触发?

如标题所示; 我有一个javascript mouseleave和mouseenter事件,但是当按住鼠标左键时它们不会触发(如果按住中键或右键,它们会很好地运行)。 为什么? 有办法吗?
1回复

先进的右键单击功能-单击并按住,显示按钮,在释放时单击悬停的内容

您将如何在javascript / jquery中做到这一点? 我目前可以right-click + hold以显示div,然后在释放右键时消失。 但是,我想单击释放鼠标右键时悬停在鼠标上的任何按钮。 这是我到目前为止的内容:
3回复

如何使用JavaScript拦截鼠标的各种按钮按下?

我研究的Web应用程序是在只有2按钮鼠标的时期内设计和开发的。 现在,我们在市场上有超过3个按钮的鼠标可用,所有这些额外的按钮在使用我们的应用程序时都会造成严重破坏。 我的意图是允许用户仅按下鼠标左键并禁用其鼠标上的所有其他按钮。 由于我无权访问用户的系统,因此必须通过浏览器本身(可能
1回复

从Javascript代码中删除鼠标控件

我有一大段代码可以绘制由鼠标控制的羽毛状设计。 这是使用鼠标按下和mouseX,mouseY。 我希望代码能够在不涉及鼠标的情况下运行并绘制羽毛(即打开画布并让羽毛自动在屏幕上绘制)。 完整的代码如下: var points = []; var painting =
16回复

JavaScript:检查鼠标按钮是否按下?

有没有办法检测JavaScript中当前是否有鼠标按钮? 我知道“mousedown”事件,但这不是我需要的。 按下鼠标按钮一段时间后,我希望能够检测到它是否仍然按下。 这可能吗?
1回复

javascript单击按钮,如果60秒钟未激活

我搜索了很长时间,并制作了无法正常工作的其他文件。 我需要什么:如果我没有与网页互动1分钟,请执行以下操作:-单击按钮。 -如果我仍然没有互动,请在30秒后重复点击 当我回到网页(再次进行交互)时,我不希望该脚本继续运行...仅当我不再进行交互时。 我来到这里:
1回复

Javascript将鼠标单击与按钮的xy进行比较

我正在尝试将html按钮的x和y设置为用户的mouseclick的x和y,我这样做如下: 这显示了两种获取按钮和鼠标值的不同方法(event.clientX,mainEvent.screenY,$('#'+ id).position()(使用jquery)和offsetLeft)。 但
1回复

Javascript-仅需要从SVG路径的笔触获取x和y坐标?

我有一个画布,在其中绘制了一个svg元素(例如一个圆圈),用户负责用鼠标通过该图进行绘制,我将用户绘制的点x和y保存在数组中,但是我不知道如何仅从svg笔划获取点。 我的问题是:使用isPointInStroke()可以查看该点是否在笔划中,但是如果我没有该笔划的总点数数组,则无法知道用户
2回复

JavaScript / HTML Canvas:用于循环按钮行的鼠标检测

我正在构建一个使用canvas进行GUI的简单鼓机。 我有一行用for循环绘制的按钮,单击时可以打开/关闭。 这是JSFiddle上的一个示例 虽然它有效,但我的buttonToggleDetection函数让我感到有点尴尬。 这是我能想到的唯一解决方案,可以检查鼠标在哪个按钮上
1回复

如何创建一个Shift键+鼠标单击事件,将单击时黑色按钮的颜色更改为黄色按钮? 的JavaScript

我正在创建一个扫雷游戏,并试图创建一个事件,如果用户按住Shift键并同时单击鼠标左键,那么我为该字段创建的按钮(背景颜色为黑色)将变为黄色,以指示被标记的按钮。 这是我到目前为止所拥有的。 属性('data-value',0)表示该按钮没有地雷或数字标签,以指示其距地雷的距离。 JS