JS 移动端笔记

    移动端的网页特效

    移动端触屏事件概述

    触屏touch事件

    touchstart 手指触摸到一个DOM元素时触发
    touchmove 手指在一个DOM上滑动时触发
    touchend 手指从一个DOM上移开时触发

    触摸事件对象
    touchstart事件对象
    touches 正在触摸屏幕的所有手指的列表
    targetTouches 正在触摸当前DOM元素的手指列表
    changedTouches 手指状态发生改变的列表 从无到有 或者 从有到无
    当我们手指离开的时候就没有了touches和targetTouches
    e.targetTouches[0] 获取当前触摸屏幕的第一个手指
 
 

    返回顶部

    直接window.scroll(0, 0)就可以了,里面的数值不需要加单位
    或者可以叫上一个滑动的效果


    移动端拖动原理

    手指移动中,计算出手指移动的距离.然后利用盒子原来的位置+手指移动的距离
    手指移动的距离:手指滑动的位置 - 手指刚开始触摸的位置
        .box {
            width: 100px;
            height: 100px;
            background-color: pink;
            position: absolute;
            left: 0;
        }
<div class="box"></div>
 var box = document.querySelector('.box')
        var startX = 0;  //获取手指的位置
        var startY = 0;
        var x = 0; //获取盒子原来的位置  
        var y = 0;

        box.addEventListener('touchstart', function (e) {
            // 获取手指初始的位置
            startX = e.targetTouches[0].pageX
            startY = e.targetTouches[0].pageY
            x = this.offsetLeft;
            y = this.offsetTop;
        })

        box.addEventListener('touchmove', function (e) {
            // 计算出手指的移动距离  手指移动后的坐标-手指的初始坐标
            var moveX = e.targetTouches[0].pageX - startX;
            var moveY = e.targetTouches[0].pageY - startY;
            // 移动盒子  盒子原来的位置+手指移动的距离
            this.style.left = x + moveX + 'px'
            this.style.top = y + moveY + 'px'
            e.preventDefault();   //阻止屏幕滚动的默认行为
        })

猜你喜欢

转载自www.cnblogs.com/xf2764/p/12710790.html