原生js通过prottype写的一个简单拖拽

<!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
        <title></title>
        <style>
		.box{
            position:absolute;width:100px;height:100px;background-color:#FF6E3D;left:0px;top:0px;left:20px;
            /*修饰*/
            border-radius:50%;box-shadow: 5px 5px 15px rgba(42,56,123,0.5);
        }
		#box1{
            position:absolute;width:100px;height:100px;background-color:#FF6E3D;left:200px;top:200px;left:20px;
            /*修饰*/
            border-radius:50%;box-shadow: 5px 5px 15px rgba(42,56,123,0.5);
        }
		</style>
    </head>
    
    <body>
        
            <div class="box"></div>
			<div id="box1"></div>
    </body> 
<script type="text/javascript">
//@zijian 2015/8/11
function Drag(id){
    this.obj = document.getElementById(id)||document.getElementsByClassName(id)[0];//class or ID
    this.disX = 0;
    this.disY = 0;//Initialization parameters

}

Drag.prototype.init = function (){
    var that = this;
    this.obj.onmousedown = function (e){
        var e = e || event;
        that.mouseDown(e);
        // Prevent the default event
        return false;
    };
};

// as the event is mouse
Drag.prototype.mouseDown = function (e){
    var that = this;
    this.disX = e.clientX - this.obj.offsetLeft; //Get mouse parameters for start
    this.disY = e.clientY - this.obj.offsetTop;

    document.onmousemove = function (e){
        var e = e || window.event;

        that.mouseMove(e);
    };  

    document.onmouseup = function (){
        that.mouseUp();
    }
};

Drag.prototype.mouseMove = function (e){
    this.obj.style.left = (e.clientX - this.disX) + 'px'; //Get mouse parameters for end
    this.obj.style.top = (e.clientY - this.disY) + 'px';
};

Drag.prototype.mouseUp = function (){
    document.onmousemove = null;
    document.onmouseup = null; //mouse leave status
};


    var drag = new Drag('box');
    drag.init();

	var drag1 = new Drag('box1');
     drag1.init();
	</script>
</html>

  

转载于:https://www.cnblogs.com/Expando/p/4929783.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值