首页 >web前端 >js教程 >一个小demo之“拖拽”效果的实现

一个小demo之“拖拽”效果的实现

PHP中文网
PHP中文网原创
2018-05-18 15:26:111477浏览

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
#wrap {
position: relative;
border: 1px solid #000;
width: 800px;
height: 500px;
} 
#drog {
position: absolute;
left: 0;
top: 0;
width: 100px;
height: 100px;
background: red;
cursor: move;
}
</style>
</head>
<body>
<p id="wrap">
<p id="drog"></p>
</p> 
<script type="text/javascript" src="startmove.js?1.1.10"></script>
<script type="text/javascript">
(function(){
var drog = document.querySelector(&#39;#drog&#39;);
/*
1.记录按下的时候的鼠标位置
2.记录按下的时候元素的位置 
*/
drog.onmousedown = function(e){
var startElY = css(drog,"top");
var startElX = css(drog,"left");
var startMouseX = e.clientX;
var startMouseY = e.clientY;
/*
求出鼠标移动的距离,
操作元素也移动相应的距离
为了可以一直跟随,所以添加给document
*/
document.onmousemove = function(e){
var nowMouseX = e.clientX;
var nowMouseY = e.clientY;
var disX =  nowMouseX - startMouseX;
var disY =  nowMouseY - startMouseY;
var x = disX + startElX;
var y = disY + startElY;
css(drog,"left",x);
css(drog,"top",y);
};
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
};
};
})(); 
</script>
</body>
</html>

以上是一个小demo之“拖拽”效果的实现的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn