您的位置:首页 > Web前端 > JavaScript

原生javascript制作拖拽效果

2017-08-04 13:06 323 查看
<!DOCTYPE html>

<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
background: red;
position: absolute;
}
</style>
</head>
<body>
<div></div>
</body>
<script>
var divs = document.getElementsByTagName("div")[0];
divs.onmousedown = function(e){
//获取距离元素的x值和y值
var oldEv = e||window.event;
var oldX = oldEv.clientX;
var oldY = oldEv.clientY;
//获取当前鼠标点到元素顶点位置的距离
var xL = oldX - divs.offsetLeft;
var yL = oldY - divs.offsetTop;

// console.log(xL+";"+yL);
document.onmousemove = function(ev){
//获取鼠标指针在页面中坐标位置
var e = ev||window.event;
//位移后元素所在位置坐标点
var x = e.clientX-xL;
var y = e.clientY-yL;
divs.style.left = x+"px";
divs.style.top = y+"px";
}
document.onmouseup = function(){
document.onmousemove = null;
}
}
</script>
</html>

本文效果重点为理解event对象中的鼠标坐标点的获取,利用鼠标事件来时时后去坐标点,利用定位改变元素的left、top值。关键是理解用户初始时鼠标所在点的位置是一直相对不变的,所以需要求出这个相对位置的距离,从而达到拖拽效果(本文没有进行极值判定,大家可以自己添加,影响不大)。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: