移动端的事件

移动端视窗

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
说明
  • width=device-width 应用程序的宽度和屏幕的宽度是一样的

  • initial-scale=1.0 应用程序启动时候的缩放尺度(1.0表示不缩放)

  • user-scalable=no/0 //用户是否可以通过他的手势来缩放整个应用程序,使应用程序的尺度发生一个改变 (no 和 0 一个理解 )

移动端的事件绑定

移动端的事件绑定是通过 ** addEventListener ** 添加

移动端的事件

  1. touchstart: 开始触屏事件 (于手指点击屏幕开始,触屏事件将会有300ms的延迟,因为这样可以判定它是否有第二次点击)

  2. touchmove: 移动事件 (手指在屏幕移动,在这里可以判断移动)

  3. touchend : 结束事件 (手指离开屏幕,结束可以判定与touchstart开始的距离)

  4. touchcancel : 中止事件 (在手机中,接听电话的优先级最高,所以在手机在进行其他操作时,就需要用到该属性)

那么这些属性我们需要从哪里获取呢?

我们可以在事件中传参e来看看

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <title>测试</title>
    <style>
        .div1{
            height: 300px;
            width: 300px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <script>
        var div1 = document.querySelector(".div1");

        // 绑定开始触摸事件
        div1.addEventListener('touchstart',function(e){
            console.log(e);
                })
      </script>
测试.jpg

其中我们可以看见changeTouches和targetTouches属性,那么就可见看看其中的值:

changedtouches.jpg
targettouches.jpg

在其中我们可以看见点击时的位置以及离开时的距离,其中targetTouches为开始点击屏幕的属性,而changedTouches为离开屏幕的属性,那么我们就可以进行一些最基本的操作,例如:div的移动

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <title>拖拽</title>
    <style>
        .div1{
            height: 200px;
            width: 200px;
            background-color: green;
            position: absolute;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <script>
        var div = document.querySelector(".div1");
        div.addEventListener('touchstart',function(e){
            var left = e.targetTouches[0].pageX - this.offsetLeft;
            var top = e.targetTouches[0].pageY - this.offsetTop;
            div.addEventListener('touchmove',function(e){
                var touches = e.targetTouches;
                var touch = touches[0];
                this.style.left = touch.pageX - left + 'px';
                this.style.top = touch.pageY - top + 'px';

            })
        })
    </script>
</body>
</html>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基本事件: touchstart //手指刚接触屏幕时触发 touchmove //手指在屏幕上移动时触发 t...
    Victor细节阅读 259评论 0赞 1
  • meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 忽略将页面中的数字识别为电话号码 忽略And...
    Mycro阅读 1,066评论 0赞 11
  • 触摸事件: 三种在规范中列出并获得跨移动设备广泛实现的基本触摸事件: 1.touchstart:手指放在一个DOM...
    晨光2016阅读 24,627评论 0赞 13
  • 生活在信息爆炸的现代社会中,每个人都感觉自己责任重大,今天有新闻爆出贪官腐败,明天有新闻爆出老无所依,还记得昨天新...
    地平线上的背影阅读 282评论 0赞 1
  • 忙碌的一天过去了,收拾收拾心情收拾收拾东西,准备下班。窗外的夜色已经黑下来了,整个办公室就剩下自己,这时反而觉得挺...
    奔跑吧蜗牛w阅读 139评论 0赞 0

友情链接更多精彩内容