原生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值。关键是理解用户初始时鼠标所在点的位置是一直相对不变的,所以需要求出这个相对位置的距离,从而达到拖拽效果(本文没有进行极值判定,大家可以自己添加,影响不大)。。。。。
<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值。关键是理解用户初始时鼠标所在点的位置是一直相对不变的,所以需要求出这个相对位置的距离,从而达到拖拽效果(本文没有进行极值判定,大家可以自己添加,影响不大)。。。。。
相关文章推荐
- 原生JavaScript制作微博发布面板效果
- 用原生JavaScript做一个拖拽效果
- 原生Javascript实现拖拽效果
- 原生JavaScript与jQuery(绝对、相对定位)实现拖拽效果
- 原生javascript实现图片无缝滚动效果
- 原生javascript图片懒加载效果代码。
- JavaScript和jQuery制作光棒效果
- javascript学习-原生javascript的小特效(多物体运动效果)
- JavaScript实现的简单拖拽效果
- javascript支持firefox,ie7页面布局拖拽效果代码
- 原生JS实现圆环拖拽效果
- JavaScript原生选项卡制作附新浪选项卡案例
- 原生javascript FileReader对象实现图片上传本地预览效果
- 手机端轻应用模拟原生的下拉刷新效果(JavaScript)
- React.js实现原生js拖拽效果及思考
- 原生javascript实现图片轮播效果——续
- 原生javascript编写手机端H5滑动效果
- JavaScript拖拽效果示例网页解决快速拖拽的问题