• h5 js拖动div


    刚好闲了一下,于是就写了一个js拖动div的简单例子,项目是vue搭建的大概就是以下内容

    html部分

    <div class="shop-cart-icon" id="shopCart" @touchstart="touchStart($event)" @touchmove="touchMove($event)" @touchend="touchEnd($event)"></div>

    js部分

    data(){
        return{
            x:0,
            y:0,
            cart:null,
            startX:0,
            startY:0,
        }
    },
    mounted(){
        this.cart=document.getElementById('shopCart');
    },
    methods:{
        touchStart(e){
            e.preventDefault();
            this.startX=e.changedTouches[0].clientX;
            this.startY=e.changedTouches[0].clientY;
        },
        touchMove(e){
            this.x=e.changedTouches[0].clientX;
            this.y=e.changedTouches[0].clientY;
            let l=this.startX-this.x;
            let t=this.startY-this.y;
            this.cart.style.transform=`translate3d(${-l}px,${-t}px,0)`;
        },
        touchEnd(e){
            let x=e.changedTouches[0].clientX;
            let y=e.changedTouches[0].clientY;
            //goShopCart
            if(this.startX===x&&this.startY===y){
                this.goShopCart();
            }else{
                this.startX=e.changedTouches[0].clientX;
                this.startY=e.changedTouches[0].clientY;
                this.cart.style.right=0;
                this.cart.style.bottom=0;
                this.cart.style.transform='translate3d(0,0,0)';
                this.cart.style.left=this.startX-20+'px';
                this.cart.style.top=this.startY-20+'px';
            }
        },
    }
        

    因为本身元素定位时用了right和bottom,所以在手指离开的时候就直接给他归零掉,用做left和top,这样就不用去做其他太多计算。

  • 相关阅读:
    js 遇到问题
    table 排序 添加 删除 等操作
    json对象
    .style, .getComputedStyle(),.currentStyle区别
    3个div 宽度移入移出时变化
    运动 js
    OWASP Top 10之文件上传漏洞简析(二)
    owasp top10 之文件上传漏洞简析
    前台实现ajax 需注意的地方
    apache-Rewrite重写规则配置
  • 原文地址:https://www.cnblogs.com/chao202426/p/12053222.html
Copyright © 2020-2023  润新知