zoukankan      html  css  js  c++  java
  • 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,这样就不用去做其他太多计算。

  • 相关阅读:
    一次简单的数据库追溯
    CI(-)框架结构
    网易有毛病,我的账号被锁了,去解锁时候又几把提示不成功,浪费劳资感情啊
    指定360浏览器内核渲染页面
    JS 拼凑字符串
    jQuery.ajax() datatype:“json" 转换失败
    html <base/>标签
    使用JExcel导出excel文件
    Java web 文件下载
    jQuery ajax 传递数组到struts2
  • 原文地址:https://www.cnblogs.com/chao202426/p/12053222.html
Copyright © 2011-2022 走看看