js實現(xiàn)div色塊拖動錄制
更新時間:2020年01月16日 10:15:07 作者:SSSkyCong
這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)div色塊拖動錄制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了js實現(xiàn)div色塊拖動錄制的具體代碼,供大家參考,具體內(nèi)容如下
描述:
實現(xiàn)一個div50*50的色塊,拖動它生成一個軌跡,松手后,這個div會重復(fù)你剛才拖動的這個路徑。
效果:
<

代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div
{
width: 50px;
height: 50px;
background-color: deepskyblue;
position: absolute;
border: 2px solid #656565;
}
</style>
<script src="js/Method.js"></script>
</head>
<body>
<div></div>
<script>
var elem;
var state=0;//當(dāng)前的狀態(tài) 初始0——拖動錄制1——回放2
var arr=[];//存放我們的行走路徑的 數(shù)組
var list=[];//存放我們的行走路徑的 數(shù)組
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) {//當(dāng)前的狀態(tài) 初始0——拖動錄制1——回放2
if(e.type==="mousedown"){//鼠標(biāo)按下
state=1;
}else if(e.type==="mouseup"){//鼠標(biāo)抬起
createElemShadow();
state=2;
}
}
function createElemShadow() {
var bool=false;
if(list.length===0) bool=true;
for(var i=0;i<5;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});
}
function play() {
/* if(index>=arr.length-1){
state=0;
return;
}*/
index++;
var point=arr[index];
if(point){
elem.style.left=point.x+"px";
elem.style.top=point.y+"px";
elem.style.backgroundColor=Method.divColor();
}
var bool=false;
for(var i=0;i<list.length;i++){
if(!arr[index-i*2]) continue;
list[i].style.left=arr[index-i*2].x+"px";
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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- js 鼠標(biāo)拖動對象 可讓任何div實現(xiàn)拖動效果
- js實現(xiàn)可拖動DIV的方法
- javascript div 彈出可拖動窗口
- 利用javascript移動div層-javascript 拖動層
- js通過八個點 拖動改變div大小的實現(xiàn)方法
- js拖動div 當(dāng)鼠標(biāo)移動時整個div也相應(yīng)的移動
- javascript 可以拖動的DIV(二)
- Javascript實現(xiàn)的類似Google的Div拖動效果代碼
- JavaScript實現(xiàn)可拖拽的拖動層Div實例
- javascript實現(xiàn)div的拖動并調(diào)整大小類似qq空間個性編輯模塊
相關(guān)文章
解析使用js判斷只能輸入數(shù)字、字母等驗證的方法(總結(jié))
本篇文章對使用js判斷只能輸入數(shù)字、字母等驗證的方法進(jìn)行了總結(jié)介紹,需要的朋友參考下2013-05-05
微信小程序設(shè)置全局請求URL及封裝wx.request請求操作示例
這篇文章主要介紹了微信小程序設(shè)置全局請求URL及封裝wx.request請求操作,結(jié)合實例形式分析了微信小程序針對wx.requset請求的封裝及調(diào)用操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-04-04
ECharts坐標(biāo)軸刻度數(shù)值處理方法例子
這篇文章主要給大家介紹了關(guān)于ECharts坐標(biāo)軸刻度數(shù)值處理的相關(guān)資料,文章介紹了一個用于圖表Y軸數(shù)值簡寫的函數(shù),它可以將大數(shù)值轉(zhuǎn)換為K、M、B等簡寫形式,從而使圖表更加美觀和易讀,需要的朋友可以參考下2024-11-11
XMLHttpRequest對象_Ajax異步請求重點(推薦)
下面小編就為大家?guī)硪黄猉MLHttpRequest對象_Ajax異步請求重點(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
JavaScript的模塊化:封裝(閉包),繼承(原型) 介紹
在復(fù)雜的邏輯下, JavaScript 需要被模塊化,模塊需要封裝起來,只留下供外界調(diào)用的接口。閉包是 JavaScript 中實現(xiàn)模塊封裝的關(guān)鍵,也是很多初學(xué)者難以理解的要點2013-07-07

