• 5.触摸屏和移动设备事件


    5.触摸屏和移动设备事件

    介绍运行在Apple的iphone和ipad设备上的Safari所产生的手势和触摸事件,还包括用户旋转这些设备时锁产生的orientationchange事件。---横屏竖屏转换触发,window对象的orientation属性给出当前方位,0,90,180,-90.

    1) 

    手势开始:gesturestart

    手势结束:gestureend。

    在这两个事件之间是跟踪手势过程的gesturechange事件队列。

    传递事件对象的数字属性scale和rotation.

    scale:两个手指之间当前距离和初始距离的比值。<1.0........>1.0;

    rotation:从事件开始手指旋转的角度,以度为单位,正值是顺时针方向。

    2) 

     手指触摸 : touchstart

    手指移动:touchmove,

    手指离开:touchend ,

    事件对象有 changedTouches属性。类数组对象,都描述触摸的位置。

    而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点(用来实现多点触控):

    touches:当前位于屏幕上的所有手指的列表。

    targetTouches:位于当前DOM元素上手指的列表。

    changedTouches:涉及当前事件手指的列表。

    每个触摸点由包含了如下触摸信息(常用):

    identifier:一个数值,唯一标识触摸会话(touch session)中的当前手指。一般为从0开始的流水号(android4.1,uc)

    target:DOM元素,是动作所针对的目标。

    pageX/pageX/clientX/clientY/screenX/screenY一个数值,动作在屏幕上发生的位置(page包含滚动距离,client不包含滚动距离,screen则以屏幕为基准)。 

    radiusX/radiusY/rotationAngle:画出大约相当于手指形状的椭圆形,分别为椭圆形的两个半径和旋转角度。

    /*单指拖动*/ var obj = document.getElementById('id'); 
    obj.addEventListener('touchmove', function(event) {     
     // 如果这个元素的位置内只有一个手指的话    
     if (event.targetTouches.length == 1) {
         event.preventDefault();// 阻止浏览器默认事件,重要  
             var touch = event.targetTouches[0];         // 把元素放在手指所在的位置        
             obj.style.left = touch.pageX-50 + 'px';    
             obj.style.top = touch.pageY-50 + 'px';     
     } }, false); 

     

    3)、重力感应重力感应较简单,只需要为body节点添加onorientationchange事件即可。在此事件中由window.orientation属性得到代表当前手机方向的数值。window.orientation的值列表如下:
    0:与页面首次加载时的方向一致
    -90:相对原始方向顺时针转了90°
    180:转了180°

    90:逆时针转了90°据我测试,Android2.1尚未支持重力感应。以上即目前的触屏事件,这些事件尚未并入标准,但已被广泛使用。本人Android2.1,未在其他环境下测试。

  • 相关阅读:
    2018牛客网暑期ACM多校训练营(第九场)A -Circulant Matrix(FWT)
    ZOJ
    BZOJ 4318 OSU!(概率DP)
    POJ
    POJ
    Linux安装及管理程序
    Linux目录及文件管理
    linux账号管理操作
    linux系统命令总结
    linux目录及文件管理操作
  • 原文地址:https://www.cnblogs.com/rainbow661314/p/3521219.html
Copyright © 2020-2023  润新知