1. 程式人生 > >JS 手勢長按代碼

JS 手勢長按代碼

.com return sina meta body jquery list 事件 scrip

jquery

  $.fn.longPress = function(callback) {
    var timer = undefined;
    var $this = this;
    // 支持綁定多個元素
    for (var i = 0; i < $this.length; i++) {
      $this[i].addEventListener(‘touchstart‘, function(event) {
        timer = setTimeout(callback, 500);
        }, false);
      $this[i].addEventListener(‘touchmove‘, function
(event) { clearTimeout(timer); }, false); $this[i].addEventListener(‘touchend‘, function(event) { clearTimeout(timer); }, false); } }

原生實現

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title></title>
    <
script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> </head> <body> <div style="width:100%;"> <div id="touchArea" style="width:90%; height:200px; background-color:#CCC;font-size:100px">長按我</div> </div> <script>
var timeOutEvent=0; $(function(){ $("#touchArea").on({ touchstart: function(e){ timeOutEvent = setTimeout("longPress()",500); e.preventDefault(); }, touchmove: function(){ clearTimeout(timeOutEvent); timeOutEvent = 0; }, touchend: function(){ clearTimeout(timeOutEvent); if(timeOutEvent!=0){ alert("你這是點擊,不是長按"); } return false; } }) }); function longPress(){ timeOutEvent = 0; alert("長按事件觸發發"); } </script> </body> </html>

JS 手勢長按代碼