es6继承实现一个拖拽功能

css:

<style type="text/css">
        .box{
            position:absolute;
            top:0;
            background:#fff000;
            width:100px;
            height:100px;
        }
        .left{
            left:0px;
        }
        .right{
            right:0;
        }
</style>

html:

<div class="box left" id="div1">左边</div>
<div class="box right" id="div2">右边</div>

js:

class Divdrag{
            constructor(div){
                this.oDiv = document.querySelector(div);
                this.oDivX = 0;
                this.oDivY = 0;
                this.init();
            }
            init(){
                this.oDiv.onmousedown = function(ev){
                    this.oDivX = ev.clientX - this.oDiv.offsetLeft;
                    this.oDivY = ev.clientY - this.oDiv.offsetTop;
                    document.onmousemove = this.fnmove.bind(this);
                    document.onmouseup = this.fnup.bind(this);
                    return false;
                }.bind(this)
            }
            fnmove(ev){
                this.oDiv.style.left = ev.clientX - this.oDivX + 'px';
                this.oDiv.style.top = ev.clientY - this.oDivY + 'px';
                if( ev.clientX - this.oDivX  <= 0 ){
                    this.oDiv.style.left = 0 + 'px';
                }
                if( ev.clientY - this.oDivY  <= 0 ){
                    this.oDiv.style.top = 0 + 'px';
                }
                if( window.innerWidth  - this.oDiv.offsetWidth < ev.clientX - this.oDivX){
                    this.oDiv.style.left = window.innerWidth - this.oDiv.offsetWidth+ 'px';
                }
                if( window.innerHeight  - this.oDiv.offsetHeight < ev.clientY - this.oDivY){
                    this.oDiv.style.top = window.innerHeight - this.oDiv.offsetHeight+ 'px';
                }
            }
            fnup(){
                document.onmousemove = null;
                document.onmouseup = null;
            }
}
class sonDrag extends Divdrag{
     constructor(div){
         super(div);
      }
}
new Divdrag("#div1");
var sondrag = new sonDrag("#div2");

 

转载于:https://my.oschina.net/u/3950671/blog/2933754

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值