我想要一個儘可能短的JavaScript例程,當一個按鈕上發生mousedown它首先響應就像一個鼠標點擊,然後如果用戶保持按鈕按下它響應,就好像用戶不斷地發送鼠標點擊,過了一段時間,按下按鈕就好像用戶正在加速他們的鼠標點擊一樣......基本上認爲它就像按鍵加速時間一樣重複。
即用戶按住鼠標按鈕(X =呼叫功能) - x___x___x___x__x__x_x_x_x_xxxxxxx需要JavaScript代碼的按鈕按住按鈕
11
A
回答
13
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 */
3
當按下按鈕時,調用window.setTimeout
與您的預期時間和功能x
,並在x
結束,但此時再次設置定時器間隔較小。
在釋放鼠標按鈕時使用window.clearTimeout
清除超時。
+0
我忙着爲他編寫代碼,但決定不在,並且在這段時間你發佈了這個,這正是我正在研究的。非常好。 – 2008-09-17 04:04:25
-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;" />
0
只要把下面toggleOn在onmousedown事件和toggleOff在按鈕的OnMouseUp。
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{
}
+0
這是一個簡單的解決方案,但它使用全局變量。我還更喜歡其他解決方案,每個迭代都會調用下一個解決方案,這兩個解決方案都是爲了更安全的邏輯,因爲每次調用都可以改變間隔長度(加速度)。 – 2016-04-28 19:35:43
-1
相關問題
- 1. 需要複製的按鈕按鈕
- 2. 的actionPerformed()的按鈕,按住
- 3. 按鈕住宿按下
- 4. 同時按住android按鈕
- 5. 按住按鈕使用jQuery
- 6. Android - 按住重複按鈕
- 7. Cocoa Touch - 按住按鈕
- 8. 按住按鈕刪除
- 9. 執行按住按鈕
- 10. 代碼按下按鈕
- 11. 按住ASP按鈕並按回車按鈕不會觸發onClick
- 12. Tweet我按鈕 - JavaScript按鈕
- 13. 在按鈕上激活代碼僅按住
- 14. 按Facebook代碼按鈕喜歡的按鈕
- 15. 需要單選按鈕 - JavaScript驗證
- 16. 需要單選按鈕,HTML和JavaScript
- 17. Javascript Image Slider - 需要添加按鈕
- 18. 按住android上的音量按鈕?
- 19. Matlab的:按鈕回調「按住」事件
- 20. 知道按鈕被按住的時間
- 21. AHK腳本將按住按鈕轉換到切換按鈕
- 22. 不按照代碼工作的按鈕
- 23. 需要CSS3按鈕樣式
- 24. 需要點擊按鈕
- 25. 需要瀏覽按鈕?
- 26. 需要創建按鈕
- 27. 按下「輸入」按鈕時,按鈕會執行錯誤代碼
- 28. javascript代碼中的動態html按鈕
- 29. 如果AI按下按鈕 - 按下什麼按鈕(按鍵代碼)
- 30. 我怎樣才能執行一些代碼,而按下按鈕(按住)Android
謝謝。我爲指數曲線而不是線性添加了一個對數函數,但那幾乎就是我正在尋找的。 – zurk 2008-09-17 04:30:27