js实现div色块拖动录制
这篇文章主要为大家详细介绍了js实现div色块拖动录制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了js实现div色块拖动录制的具体代码,供大家参考,具体内容如下
描述:
实现一个div50*50的色块,拖动它生成一个轨迹,松手后,这个div会重复你刚才拖动的这个路径。
效果:
代码:
!DOCTYPE html html lang="en" head meta charset="UTF-8" title Title /title style width: 50px; height: 50px; background-color: dee凡科抠图kyblue; position: absolute; border: 2px solid #656565; /style script src="js/Method.js" /script /head body div /div script var elem; var state=0;//当前的状态 初始0——拖动录制1——回放2 var arr=[];//存放我们的行走路径的 数组 var list=[];//存放我们的行走路径的 数组 var index=0; init(); function init() { elem=document.querySelector("div"); Method.dragElem(elem); elem.addEventListener("mousedown",mouseHandler); elem.addEventListener("mouseup",mouseHandler); setInterval(animation,16); function mouseHandler(e) {//当前的状态 初始0——拖动录制1——回放2 if(e.type==="mousedown"){//鼠标按下 state=1; }else if(e.type==="mouseup"){//鼠标抬起 createElemShadow(); state=2; function createElemShadow() { var bool=false; if(list.length===0) bool=true; for(var i=0;i i++){ if(bool)list.push(elem.cloneNode(false)); list[i].style.opacity=1-i*0.2; document.body.appendChild(list[i]) function animation() { if(!state) return; if(state===1){ record(); }else if(state===2){ play(); function record() { var rect=elem.getBoundingClientRect(); arr.push({x:rect.x,y:rect.y});
list[i].style.top=arr[index-i*2].y+"px"; list[i].style.backgroundColor=Method.divColor(); bool=true; if(!bool){ state=0; for(var j=0;j list.length;j++){ list[j].remove(); /script /body /html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持凡科。