JavaScript简单拖拽

        说到交互,基本上是在JavaScript语言中占据了大分量,JavaScript行为 为页面增添了光彩,而现在大多数网站都是运用交互式的,拖拽在交互这个大系统中也是很有重量的。

        把一个东西放在大盒子里移动拖拽,计算拖拽公式是非常重要的,基本上明白了拖拽公式就可以写出拖拽代码了。

       

        假设我们把物体1 拖拽到物体2 的地方,此刻可以知道拖拽的步骤是:先鼠标左键点到物体1 然后移动到物体2的地方,松开左键,完成拖拽。

        当点击的时候,可以通过事件源e.pagaX或者e.pageY获取到鼠标点击的位置,然后通过脚本化css可以获取到物体距离边界的top值和left值。假设物体1的深蓝线条点击处距离物体上边界disY,距离物体左边界为disX,即:disX = e.pageX - box.offsetLeft、disY = e.pageY - box.offsetTop。

        上面知道了鼠标点击位置距离物体上\左边界的距离大小,当移动的时候就必须要重新计算物体的top值和left值。即:box.style.left = e.pageX - disX + 'px'; box.style.top = e.pageY - disY + 'px';。这样物体就跟着你的鼠标移动了。

        我们封装一个拖拽方法。

 

var box = document.getElementById("box"),
    wrapper = document.getElementById('wrapper');
    function bindEvent(box,wrapper){
	var X,
	    Y,
	    boxL,
	    boxT,
	    disL,
	    disT,
	    drag = false;
        box.onmousedown = function(e){
	    drag = true;
	    var e = e || window.event;
	    X = e.pageX;
	    Y = e.pageY;
	    boxT = box.offsetTop;
	    boxL = box.offsetLeft;
	    disT = Y - boxT;
	    disL = X - boxL;
        }
	wrapper.onmousemove = function(e){
	    var e = e || window.event;
	    if(drag){
		    box.style.left = e.pageX - disL + 'px';
		    box.style.top = e.pageY - disT + 'px';
	    }
        }
	box.onmouseup = function(){
	    drag = false;
	}
}
bindEvent(box,wrapper);	

        好好的理解一下拖拽的鼠标点击时的位置对物体上左边界的距离,这样简单的拖拽是不难写出来的。

        --主页传送门--

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值