JS 手勢長按代碼
阿新 • • 發佈:2017-12-25
.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 手勢長按代碼