标签:rest 示例 maximum break hang clientx function 核心 style
移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成。但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件。处理touch事件能跟踪到屏幕滑动的每根手指。
四种touch事件
它们都是冒泡的,也可以取消。
<script> window.onload = function(){ document.addEventListener("touchmove", _touch, false); } function _touch(event){ alert(1); } </script>
每个触摸事件被触发后,会生成一个event对象,event对象里额外包括以下三个触摸属性
touches:表示当前跟踪的触摸操作的Touch对象的数组。
targetTouches:特定于事件目标的Touch对象的数组。
changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。
这些列表里的每次触摸由touch对象组成,touch对象里包含着触摸信息,主要属性如下:
clientX / clientY: //触摸点相对浏览器窗口的位置 pageX / pageY: //触摸点相对于页面的位置 screenX / screenY: //触摸点相对于屏幕的位置 identifier: //touch对象的ID target: //当前的DOM元素
一些手势
注意:
手指在滑动整个屏幕时,会影响浏览器的行为,比如滚动和缩放。所以在调用touch事件时,要注意禁止缩放和滚动。
1.禁止缩放
通过meta元标签来设置。
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
2.禁止滚动
preventDefault是阻止默认行为,touch事件的默认行为就是滚动。 event.preventDefault();
例如:
document.body.addEventListener(‘touchmove‘, function(event) { event.preventDefault(); }, false);
完整示例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> <title>touch</title> <script> function load (){ document.addEventListener(‘touchstart‘,touch,false); document.addEventListener(‘touchmove‘,touch,false); document.addEventListener(‘touchend‘,touch,false); function touch (event){ var event = event || window.event; var oInp = document.getElementById("inp"); switch(event.type){ case "touchstart": oInp.innerHTML ="Touch started (" + event.touches[0].clientX +"," + event.touches[0].clientY +")"; break; case "touchend": oInp.innerHTML ="<br>Touch end (" + event.changedTouches[0].clientX +"," + event.changedTouches[0].clientY +")"; break; case "touchmove": event.preventDefault(); oInp.innerHTML ="<br>Touch moved (" + event.touches[0].clientX +"," + event.touches[0].clientY +")"; break; } } } window.addEventListener(‘load‘,load,false); </script> </head> <body> <div id="inp">div</div> </body> </html>
标签:rest 示例 maximum break hang clientx function 核心 style
原文地址:http://www.cnblogs.com/Chen-XiaoJun/p/6224262.html