<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>拖拽回放</title>
<style>
*{
margin: 0;padding: 0;
}
#box{
width: 400px;
height: 300px;
background: #000;
box-shadow: 0 0 10px #000;
position: absolute;
}
#drag-bar{
height: 30px;
width: 400px;
background: antiquewhite;
text-align: right;
}
#btn{
width: 60px;
height: 30px;
background: yellowgreen;
box-sizing: border-box;
}
</style>
</head>
<body>
<div id="box">
<div id="drag-bar"><button id="btn">回放</button></div>
</div>
<script>
var box = document.getElementById("box");
var dragBar = document.getElementById("drag-bar");
var btn = document.getElementById("btn");
var offsetX = 0, offsetY = 0 , positionArray = [];
// 开始拖拽;
dragBar.addEventListener("mousedown",handlerMouseDown)
function handlerMouseDown(evt){
var e = evt || window.event;
var target = e.target || e.srcElement;
if(target.nodeName === "BUTTON"){
return false;
}
offsetX = e.offsetX;
offsetY = e.offsetY;
document.addEventListener("mousemove",handlerMouseMove)
}
function handlerMouseMove(evt){
var e = evt || window.event;
var _left = e.clientX - offsetX ;
var _top = e.clientY - offsetY;
box.style.left = _left + "px";
box.style.top = _top + "px";
// console.log({left:_left , top : _top});
positionArray.push(
{
left: _left ,
top : _top
}
)
}
document.addEventListener("mouseup",handlerMouseUp);
function handlerMouseUp(){
document.removeEventListener("mousemove",handlerMouseMove)
}
btn.addEventListener("click",handlerClick)
function handlerClick(){
// 1. 找到一个慢慢来的下标;
var index = positionArray.length;
// 2. 慢慢的递减;
var timer = setInterval(function(){
if(index === 0){
positionArray.length = 0;
return clearInterval(timer);
}
index --
box.style.left = positionArray[index].left + "px";
box.style.top = positionArray[index].top + "px";
},100)
}
自制完美拖拽
猜你喜欢
转载自blog.csdn.net/yushiyzz/article/details/87928446
今日推荐
周排行