拖拽功能函数

实现拖拽功能的简单函数
 class Drag{
        constructor(el){
            this.el = document.querySelector(el)
            this.distance = {
                x: 0, y: 0
            }
            this.init()
        }
        init(){
            this.el.onmousedown = e => {
                this.distance.x = e.clientX - this.el.offsetLeft
                this.distance.y = e.clientY - this.el.offsetTop

            //    document.addEventListener('mousemove', this.mouseMove.bind(this))
            //    document.addEventListener('mouseup', this.mouseUp.bind(this))
                document.onmousemove = this.mouseMove.bind(this)
                document.onmouseup = this.mouseUp.bind(this)
            }
        }
        mouseMove(e){
            this.el.style.left = e.clientX - this.distance.x + 'px'
            this.el.style.top = e.clientY - this.distance.y + 'px'
            if(this.el.offsetLeft <= 0){
                this.el.style.left = 0;
            }
            if(this.el.offsetTop <= 0){
                this.el.style.top = 0;
            }
        }
        mouseUp(){
            document.onmousemove = null;
            document.onmouseup = null;
            // document.removeEventListener('mousemove', this.mouseMove)
            // document.removeEventListener('mouseup', this.mouseUp)
        }
    }
    new Drag('#box1')

html 和 css 结构

<style>
    <div id="box1"></div>

    div{
        border: 1px solid pink;
        background: skyblue;
        height: 100px;width: 100px;
        position: absolute;
        left: 0;top:0;
    }
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值