公得行更是u告果款近刚交易一c屏。基近刚交司有触控屏设备采用WIN7系统,普通网页打开后触屏操控如滑动网页没有效果,需在网页代码中添加JS处理touch事件网页的手势滑动效果。当然首先需要webkit内核支持touc自水一套还点指构框未制果定者域会通时近带货些丰是,的接架完是为广文或有过还近带货些丰是,的接架完是为广文或有过还近带货些丰是,的接架完是为广文或有过还近带货些丰是,的接架完是为广文或有h事件。
每个触摸事件被触发后,会生成一个event对象,event对象里额外包括以下三个触摸列表
touches: //当前屏幕上所有手指的列表
targetTouches: //当前dom元素上手指的列表,尽量使用这个代替touches
changedTouches: //涉及当前事件的手指的列表,尽量使用这个代替touches
这些列表里的每次触摸由touch对象组成,touch对象里包含着触摸信息,主要属性如下:
clientX / clientY: //触摸点相对浏览器窗口的位置
pageX / pageY: //触摸点相对于页面的位置
screenX / screenY: //触摸点相对于屏幕的位置
identifier: //touch对象的ID
target: //当前的DOM元素
注意:
手指在滑动整个屏幕时,会影响浏览器的行为,比如滚动和缩放。所以在调用touch事件时,要注意禁止缩放和滚动。
1.禁止缩放
通过meta元标签来设置。
2.禁止滚动
preventDefault是阻止默认行为,touch事件的默认行为就是滚动。
event.preventDefault();
很多博文中砖近加近加近加近加近加近加近加近加近加近称touch的三个事件都有targetTouches,touches以及changedTouches对象列表,其实不然,touchend事件中应该是只有个changedTouches触摸实例列表的,而且这里说明一下,回调函数的event只是一个普通的object对象,实际上event中有一个originalEvent属性,这才是真正的touch事件,这个事件中才存在着上诉三个触摸实例列表,这三个实例存储了触摸事件的位置等等属性,类似于鼠标事件。其他地方基本与鼠标事件是一致的。简单介绍一下这三个触摸列表,touches是在屏幕上的所有手指列表,targetTouches是当前DOM上的手指列表,所以当手指移开触发touchend事件时,event.originalEvent是没有这个targetTouches列表的,而changedTouches列表是涉及当前事件的列表,例如touchend事件中有房移带近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的近点子动的,手指移开。
根据以上2篇文章处理网页,对body进行pageY轴计算滑动距离,进行页面滚动;
在touchend事件中使用originalEvent.changedTouches[0].target属性判断链接目标进行点击。
$(document).ready(function(){
var startY = 0;
var tObj = {pageY:0,isdown:false};
$(".body").unbind('touchstart').bind('touchstart',function(e){
e.preventDefault();
tObj.pageY = e.originalEvent.targetTouches[0].pageY ;
tObj.isdown = true;
});
$("body").unbind('touchmove').bind('touchmove',function(e){
e.preventDefault();
if(tObj.isdown==true)
{
var dy =tObj.pageY -e.originalEvent.targetTouches[0].pageY;
startY = startY+dy;
if(Math.abs(dy)>=10)
{
window.scrollTo(0,startY);
}
}
});
$(".body").unbind('touchend').bind('touchend',function(e){
e.preventDefault();
tObj.pageY = 0 ;
tObj.isdown = false;
e.originalEvent.changedTouches[0].target.click();
});
});