zoukankan      html  css  js  c++  java
  • 移动web js触屏事件 按下 松开 滑动

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

    一、触摸事件

    ontouchstart

    ontouchmove

    ontouchend

    ontouchcancel 

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

    touchstart → mouseover → mousemove → mousedown → mouseup → click1

    /*** onTouchEvent*/

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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)随手指滑动,需要滑动的区域<div id="#roll" ontouchmove="tmove(event)"></div>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    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();
    }
    </script>

    2)手指滑动离开后触发需要滑动的区域<div id="#roll" ontouchend="tend(event)" ontouchstart="tstart(event)"></div>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    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(down<up)
    {//向右
    $("#roll").animate({left:((index+w)+"px")},1000);
    index = index+64>0?0:index+w;
    }
    }

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

    3.1 ) 清空文本框:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $("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)返回上一页

    1
    <a href="javascript:history.back()" class="back"></a>
    多多指教,我还是前端小生
  • 相关阅读:
    Angular随笔第一课
    web前端面试集锦(自己搜集的,如有错误请不吝赐教)
    菜单选项卡-2中方法加载选项卡的内容
    dialog使用方法(同一页面,调用一个js代码,实现多个不同样式的弹窗)
    JAVA中对象赋值以及前拷贝,深拷贝等~~
    基类指针指向派生类对象
    JAVA中方法的参数传递(转)
    java和C++的const 和 final 的区别
    JAVA--虚函数,抽象函数,抽象类,接口
    libdash编译中遇到的问题及解决方案
  • 原文地址:https://www.cnblogs.com/yangslin/p/9271314.html
Copyright © 2011-2022 走看看