2016-07-13 78 views
0

是否有可能的方式來跟蹤用戶握住手指多長時間,並且每1秒更改html中的某些內容。Touchstart,touchend javascript counter

我在一篇文章中發現了這個例子http://jsfiddle.net/7Z6hg/,但它與keydown。

$(function() { 
    var keyTimes = {}; 

    $(document).keydown(function (e) { 
     if (keyTimes["key" + e.which]) { 
      return false; 
     } 
     keyTimes["key" + e.which] = new Date().getTime(); 
    }); 

    $(document).keyup(function (e) { 
     if (keyTimes["key" + e.which]) { 
      var x = new Date().getTime() - keyTimes["key" + e.which]; 
      delete keyTimes["key" + e.which]; 
      $("<p />").text("Held key " + e.which + " for " + x/1000.0 + " seconds").appendTo("div"); 
     } 
    }); 
}); 

是否有觸摸設備的任何事件?

感謝您的幫助!

回答

0
  • 使用Date-object獲得其上發起
  • 使用+(Unary plus)事件得到的Date-object
  • 除以時間戳的Date通過1000的差異將返回seconds

var elem = document.getElementById('elem'); 
 
var date; 
 
elem.addEventListener('touchstart', function() { 
 
    date = +new Date(); 
 
}); 
 
elem.addEventListener('touchend', function() { 
 
    var diff = +new Date() - date; 
 
    console.log((diff/1000).toFixed(2) + ' seconds'); 
 
});
#elem { 
 
    width: 100%; 
 
    height: 200px; 
 
    background-color: green; 
 
}
<div id="elem">Element</div>

+0

它的工作原理!謝謝! – UnLi

+0

@UnLi當然...我希望你知道這個事件是如何工作的... – Rayon

相關問題