js拖动

html:
<div class="box" id="box">
	<p id="p">点击拖动</p>
	<a href="javascript:" id="hf">路径回放</a>
 </div>

js:

       /*
	   鼠标按下:(onmousedown)
	   鼠标移动onmousemove
           鼠标弹起:onmouseup
	*/
	//第一步:获取所要操作的节点对象(box、p、hf)
	window.onload = function(){
		var box = document.getElementById("box");  //box
		var p = document.getElementById("p");  //p
		var hf = document.getElementById("hf");  //hf
		var arr = [];
		p.onmousedown = function(e){
			var _event = window.event||e;
			//第一次在点击时,获取的当前鼠标相对于p的一个坐标
			var left = _event.offsetX;   
			var top = _event.offsetY;
			document.onmousemove = function(e){
				var _event = window.event||e;
				var x = _event.clientX-left;
				var y = _event.clientY-top;
				//{left:x,top:y}  {key:value}
				arr.push({left:x,top:y});
				box.style.left = x + "px";
				box.style.top = y + "px";
				
			}
			p.onmouseup = function(){
				document.onmousemove = null;
			}
			hf.onclick = function(){
				var termId = setInterval(function(){
					if(!arr[0]){
						clearInterval(termId);
						return;
					}
					box.style.left = arr[0].left + "px";
					box.style.top = arr[0].top + "px";
					arr.shift();
				},100);
			}
		}
	}

样式根据自己喜好就随意设置吧。这里可以实现点击拖动,同时还添加了路径回放的功能,主要思想就是一直将x和y的值存进一个数组,这个过程是持续的,然后点击回放的时候,使用一个定时器,把数组的第一个值依次删除,然后可以复原拖动的路径,如果是想倒放,那么就是删除数组里面的最后一个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值