首页 web前端 js教程 限制范围拖拽,磁性吸附。

限制范围拖拽,磁性吸附。

Jun 23, 2017 am 11:04 AM
范围 限制

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body {
margin: 0;
}
#wrap {
margin: 50px auto;
position: relative;
border: 1px solid #000;
width: 600px;
height: 500px;
} 
#div {
position: absolute;
left: 0;
top: 0;
width: 100px;
height: 100px;
background: red;
cursor: move;
}
</style>
</head>
<body>
<div id="wrap">
<div id="div">文字</div>
</div>
<script type="text/javascript">
(function(){
var div = document.querySelector('#div');
var maxX = div.offsetParent.clientWidth - div.offsetWidth;
var maxY = div.offsetParent.clientHeight - div.offsetHeight;
div.addEventListener('mousedown', function(e) {
e.preventDefault();
var start = {x: e.clientX,y: e.clientY};
var elOffset = {x: div.offsetLeft,y: div.offsetTop};
document.addEventListener('mousemove', move);
document.addEventListener('mouseup', end);
function move(e){
var dis  = {x:e.clientX - start.x,y:e.clientY - start.y};
var x = dis.x + elOffset.x;
var y = dis.y + elOffset.y;
/* 左侧磁性吸附 */
x = x<0?0:(x>maxX?maxX:x);

y = y<0?0:(y>maxY?maxY:y);
console.log(x);
div.style.left = x + "px";
div.style.top = y + "px";
}
function end(e){
document.removeEventListener('mousemove', move);
document.removeEventListener('mouseup', end);
var dis  = {x:e.clientX - start.x,y:e.clientY - start.y};
var x = dis.x + elOffset.x;
var y = dis.y + elOffset.y;
/* 左侧磁性吸附 */
x = x<100?0:(x>maxX?maxX:x);
/* 上边磁性吸附 */
y = y<100?0:(y>maxY?maxY:y);
console.log(x);
div.style.left = x + "px";
div.style.top = y + "px";
}
});
})(); 
</script>
</body>
</html>
登录后复制


以上是限制范围拖拽,磁性吸附。的详细内容。更多信息请关注PHP中文网其他相关文章!

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

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解除视频号评论限制?视频号评论限制多少字数? 如何解除视频号评论限制?视频号评论限制多少字数? Mar 22, 2024 pm 02:11 PM

如何解除视频号评论限制?视频号评论限制多少字数?

使用java的StringBuilder.replace()函数替换指定范围的字符 使用java的StringBuilder.replace()函数替换指定范围的字符 Jul 24, 2023 pm 06:12 PM

使用java的StringBuilder.replace()函数替换指定范围的字符

找出在范围内不可被任何数整除的数字,使用C++ 找出在范围内不可被任何数整除的数字,使用C++ Sep 13, 2023 pm 09:21 PM

找出在范围内不可被任何数整除的数字,使用C++

wps会员最大可上传多大文档超过限制怎么办 wps会员最大可上传多大文档超过限制怎么办 Mar 20, 2024 pm 06:40 PM

wps会员最大可上传多大文档超过限制怎么办

如何设置CentOS系统以限制用户对系统日志的修改 如何设置CentOS系统以限制用户对系统日志的修改 Jul 05, 2023 pm 03:43 PM

如何设置CentOS系统以限制用户对系统日志的修改

Vue 中如何实现日期范围选择器? Vue 中如何实现日期范围选择器? Jun 25, 2023 am 08:41 AM

Vue 中如何实现日期范围选择器?

JavaScript 如何实现图片的拖动缩放同时限制在容器内? JavaScript 如何实现图片的拖动缩放同时限制在容器内? Oct 20, 2023 pm 04:19 PM

JavaScript 如何实现图片的拖动缩放同时限制在容器内?

内联模板函数的应用与限制 内联模板函数的应用与限制 Apr 28, 2024 pm 02:33 PM

内联模板函数的应用与限制

See all articles