前端开发

 首页 > 前端开发 > javascript > 移动web js触屏事件 按下 松开 滑动一、触摸事件三、重力感应

移动web js触屏事件 按下 松开 滑动一、触摸事件三、重力感应

分享到:
【字体:
导读:
          移动web js触屏事件 按下 松开 滑动讲解 一、触摸事件 ontouchstart ontouchmove ontouchend ontouchcancel 目前移动端浏览器均支持这4个触摸事件,包括IE。由于触屏也支持MouseEvent,因此他们的顺序...

移动web js触屏事件 按下 松开 滑动讲解

一、触摸事件

ontouchstart

ontouchmove

ontouchend

ontouchcancel 


目前移动端浏览器均支持这4个触摸事件,包括IE。由于触屏也支持MouseEvent,因此他们的顺序是需要注意的:


touchstart → mouseover → mousemove → mousedown → mouseup → click1


/*** onTouchEvent*/

var div = document.getElementById("div");
//touchstart类似mousedown
div.ontouchstart = function(e){
//事件的touches属性是一个数组,其中一个元素代表同一时刻的一个触控点,从而可以通过touches获取多点触控的每个触控点
//由于我们只有一点触控,所以直接指向[0]
var touch = e.touches[0];
//获取当前触控点的坐标,等同于MouseEvent事件的clientX/clientY
var x = touch.clientX;
var y = touch.clientY;
};
//touchmove类似mousemove
div.ontouchmove = function(e){
//可为touchstart、touchmove事件加上preventDefault从而阻止触摸时浏览器的缩放、滚动条滚动等
e.preventDefault();
};
//touchend类似mouseup
div.ontouchup = function(e){
//nothing to do
};


三、重力感应


重力感应较简单,只需要为body节点添加onorientationchange事件即可。


在此事件中由window.orientation属性得到代表当前手机方向的数值。window.orientation的值列表如下:


0:与页面首次加载时的方向一致

-90:相对原始方向顺时针转了90°

180:转了180°

90:逆时针转了90°


测试,Android2.1尚未支持重力感应。以上即目前的触屏事件,这些事件尚未并入标准,但已被广泛使用。未在其他环境下测试。


//以上为转载。下面是偶在做电子阅读的实例


1)随手指滑动,需要滑动的区域



var u = $('#roll');
function tmove(evet){
var touch = evet.touches[0];
var x = touch.clientX;
var y = touch.clientY;
var left = $("#roll").css("left");
$("#roll").animate({left:"-264px"},1000);
evet.preventDefault();
}


2)手指滑动离开后触发需要滑动的区域

 

var down = 0;
var up = 0;
var index=0;
var w = 64;
function tstart(event)
{
down=event.changedTouches[0].pageX;//获取手指刚触摸时的x坐标
}
function tend(event)
{
up=event.changedTouches[0].pageX;//获取手指离开时的x坐标
ul_obj = $("#roll");
if(down>up)
{//向左
$("#roll").animate({left:(index+"px")},1000);
index = index-64<=-180?-180:index-w;
}
else if(down0?0:index+w;
}
}


3)还有就是电子书别的一些用到滴~帮助记忆~


3.1 ) 清空文本框:


$("input").attr("value","");
3.2 ) setIntervar(function(){ },1000) 设置自动轮播图
setInterval(function (){ 
if (i > $('.img ul li img').length - 2) 
{
i = 0;
$('.dot a').removeClass('at').eq(i).addClass('at'); 
}
else{
i++;
$('.dot a').removeClass('at').eq(i).addClass('at');
}
$('.img ul').animate({left:-300*i},1000)
},2000);
3.3 )setTimeout(function(){},1000) 设置一定时间后触发事件
setTimeout(function (){ 
$('#feedOk').hide();
$("#read a").html(“下载成功!”);
document.location.href="index.html";
},2000);


3.4)返回上一页


来源:http://hi.baidu.com/dandan_ze/item/50e45f96100ad04cf1421507


参考网站:http://blog.163.com/xz551@126/blog/static/821257972012722112636769/


分享到:
Javascript中node.js触摸事件处理
今天带来 Javascript中node.js触摸事件处理 页面结构:          node.js是基于google的开源javascriptV8引擎开发的Web I/O服务器,原本node.js只能运行在POSIX系统环境下(Linux或者Mac OS),在Windows环境下需要安装虚拟环境,在这里通过安装Cygwin在Windows环境下构建linux虚拟环境。        样式...
js 返回前一页并刷新页面方法
JS 重载页面,本地刷新,返回上一页  代码如下 返回上一页 重载页面,本地刷新 返回上一页重载页面,本地刷新 返回前二页并刷新的JS代码应该怎样写。 js 方法  代码如下 返回 asp自动返回并刷新的方法:  代码如下 response.Write("self.location=document.referrer;") 一般用于向一个页面提交action后返回前一页并刷...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……