touch——移动端

touch事件原生一定要用addEventListener来绑定

一、原生

  • touchstart:触摸开始时触发
  • touches:当前位于屏幕上所有手指的列表
    • event.touches.length : 记录一瞬间触摸到的手指数
    • event.touches[0].screenX : 记录第一根手指在屏幕的x轴位置
    • event.touches[0].screenY : 记录第一根手指在屏幕的y轴位置
  • touchmove:手指在屏幕中移动时触发
  • touchend:触摸结束的时候触发

为阻止滑动屏幕时使得页面切换,一般会添加阻止默认事件:

document.addEventListener("touchstart",function (){
    event.preventDefault();
},false);

二、touch.js

  • 格式:
    • touch.on(obj,"",listener);
    • obj:对象,不是获取的,如:#div等
    • “”:里面为移动事件
    • listener:为函数function(){}
  • drag:抓取并拖动目标
  • touch.on("#div1","drag",function (ev){
    console.log(ev.x+","+ev.y); //移动的x/y轴距离
    });
  • dragend:拖动结束时触发
  • swipe:滑动手指触发
    • swipeleft:向左滑动触发
    • swiperight:向右滑动触发
    • swipeup:向下滑动触发
    • swipedown:向上滑动触发
  • tap:点击一次触发
  • doubletap:双击触发
  • pinch:捕获手势(放大或缩小)
    • ev.scale:捕获放大的倍数
    • obj.style.webkitTransform = "scale("+ds+")";
      //设置对于原来的放大/缩小倍数
  • rotate:旋转(双指)
    • touch.on("#div1","rotate",function (ev){
      var newAngle=ev.rotation+angle; //ev.rotation 捕获当前旋转的角度
      if (ev.fingerStatus == "end"){ //ev.fingerStatus 捕获当前手指状态(开始/运动/结束)
      angle=newAngle;
      }
      this.style.webkitTransform="rotate("+newAngle+"deg)"; //设置变换角度
      });
  • 在touchstart中加入:
    • touch.on("#div1","touchstart",function (ev){
      ev.startRotate(); //可以用单指来旋转
      ev.preventDefault();
      });

三、移动端事件——deviceorientation(可做重力游戏)

  • event.beta:  x轴
  • event.gamma:  y轴
  • event.alpha:  z轴

时间: 2024-08-05 06:16:36

touch——移动端的相关文章

jquery touch 移动端上下滑动加载

var touchStart, touchEnd, touchDiff = 80; $(window).on({ 'touchstart': function (e) { touchStart = e.originalEvent.changedTouches[0].clientY; }, 'touchend': function (e) { touchEnd = e.originalEvent.changedTouches[0].clientY; var diff = touchStart -

移动端WEB开发,click,touch,tap事件浅析

一.click 和 tap 比较 两者都会在点击时触发,但是在手机WEB端,click会有 200~300 ms,所以请用tap代替click作为点击事件. singleTap和doubleTap 分别代表单次点击和双次点击. 二.关于tap的点透处理 在使用zepto框架的tap来移动设备浏览器内的点击事件,来规避click事件的延迟响应时,有可能出现点透的情况,即点击会触发非当前层的点击事件. 处理方式: (1). github上有一个叫做fastclick的库,它也能规避移动设备上clic

html .css 实现图片滑动和自动播放特效移动端 HTML 5中添加了以touch 开头的事件

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" />     <title>后盾网视频教程之滑动轮

zTouch-移动端触屏开发利器(zepto touch扩展)

* Zepto.js v1.0.1 touch extend (Zepto.js v1.0.1 的swipe touch扩展)js-处理手机移动端web触屏手势动作. Zepto.js v1.0.1版本的touch.js模块引入使用后会导致页面很卡的情况,所以开发了一个新的扩展插件来替换其touch.js.已经过Android/ios测试. github* zTouch特点: zTouch.js只包含核心功能函数,不包含任何效果,简洁轻巧;    提供丰富的回调参数,可由用户自定义扩展效果(可参

移动端touch点穿(穿透)解决办法

回答一 穿透(点穿)是在mobile各种浏览器上发生的常见的bug.可能是由click事件的延迟或者事件冒泡导致. 移动web开发常用的Zepto库中的touch和tap事件就会有点穿的bug(Zepto的事件都绑在Document上). 解决方案 1.使用fastclick,这个可以非常完美的解决点穿问题. 2.在touchend事件回调中加入preventDefault, 并在下一层中加上pointer-events:none. 回答二 移动端的click都是touch之后,才会模拟触发.

&#31227;&#21160;&#31471;&#19978;&#19979;&#28369;&#21160;&#20107;&#20214;&#20043;--&#22353;&#29241;&#30340;touch.js

转:http://blog.csdn.net/minidrupal/article/details/39611605?utm_source=tuicool&utm_medium=referral 移动端页面的盛行,微信的便利的页面推广等等,让越来越多的css3效果和html5在手机端大放异彩。 于是乎,各式各样的简约酷炫的html5页面层出不穷,最多的就是视差滚动+css3动画。 接下来就说说自己在搞这些页面里面碰到的一个小问题-------zepto.js里面,坑爹的touch.js的上下滑动

移动端上下滑动事件之--坑爹的touch.js

原文   http://blog.csdn.net/minidrupal/article/details/39611605 移动端页面的盛行,微信的便利的页面推广等等,让越来越多的css3效果和html5在手机端大放异彩. 于是乎,各式各样的简约酷炫的html5页面层出不穷,最多的就是视差滚动+css3动画. 接下来就说说自己在搞这些页面里面碰到的一个小问题-------zepto.js里面,坑爹的touch.js的上下滑动( swipe )事件失效. 在举例之前,先科普一下如何在pc端,查看h

移动端开发用touch事件还是click事件

前端开发现在包含了跨浏览器,跨平台(不同操作系统)和跨设备(不同尺寸的设备)开发. 在移动开发的过程中,到底选取touch事件还是click事件?对了,请不要鄙视click,click在移动端开发用着也是不错的. 首先,我先说一下touch事件在开发中存在的两个问题: 1.touch事件在某些场景下存在点击穿透的问题. 2.touchstart事件时触摸屏幕就会触发,touchend事件是手指离开屏幕就会触发,而有时候,我们仅仅是只想滑动屏幕,却会触发这两个事件. 1问题的原因:移动端事件触发的

移动端touch实现下拉刷新

移动端实现下拉刷新 第一部分:四个touch事件 1.touchstart:只要将手指放在了屏幕上(而不管是几只),都会触发touchstart事件. 2.touchmove: 当我们用手指在屏幕上滑动时,这个事件会被连续触发. 如果我们不希望页面随之滑动,我们可以使用event的preventDefault来阻止这个默认行为. 3.touchend: 当手指滑动后离开屏幕,这时就触发了touchend事件. 4.touchcancel: 系统停止跟踪触摸时候会触发.例如在触摸过程中突然页面al