Javascript 學習之路:鼠標長按事件


 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title></title>
 6     </head>
 7     <body>
 8         <input type="button" onmousedown="holdDown()" onmouseup="holdUp()" value="鼠標長按" />
 9         <script type="text/javascript">  
10             var timeStart,timeEnd,time;//申明全局變量
11             
12             function getTimeNow()//獲取此刻時間
13             {
14                 var now=new Date();
15                 return now.getTime();
16             }
17             function holdDown()//鼠標按下時觸發
18             {
19                 timeStart=getTimeNow();//獲取鼠標按下時的時間
20                 time=setInterval(function()//setInterval會每100毫秒執行一次
21                 {
22                     timeEnd=getTimeNow();//也就是每100毫秒獲取一次時間
23                     if(timeEnd-timeStart>1000)//如果此時檢測到的時間與第一次獲取的時間差有1000毫秒
24                     {
25                         clearInterval(time);//便不再繼續重復此函數 (clearInterval取消周期性執行)
26                     alert("長按");//並彈出代碼
27                     }
28                 },100);
29             }
30             function holdUp()
31             {
32                 clearInterval(time);//如果按下時間不到1000毫秒便彈起,
33             }
34           </script> 
35     </body>
36 </html>

 通過setInterval()方法可以按周期執行代碼段,並返回一個標識性的值(可以理解為周期性調用函數的過程)。調用clearInterval(返回的參數) 方法可以結束該重復性過程。

 

效果:只要長按時間到達1000毫秒,無論是否彈起鼠標,都會觸發。反之,如果不到1000毫秒,鼠標彈起的時候會結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM