问题描述:

想要实现鼠标限制范围,那么就需要 监听鼠标 移入移出 事件 。并且 移出时做个提示。在里面禁用 鼠标事件。

实现步骤:

限制范围 的思路 :可以 超出范围 就提示,或者隐藏 鼠标光标。借助 onmouseove、onmouseout事件然后 动态设置 限制的 dom的 cursor属性。 cursor:none 隐藏 ,cursor:auto显示。

js代码

js利用 onmouseover(移入)、onmouseout(移出)

onmouseover 事件会在鼠标指针移动到指定的元素上时发生。

onmouseout 事件会在鼠标指针移出指定的对象时发生。

cursor属性定义及使用说明:

span.crosshair {cursor:crosshair}
span.help {cursor:help}
span.wait {cursor:wait}

属性值:

描述
url

需使用的自定义光标的 URL。

注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。

default 默认光标(通常是一个箭头)
auto 默认。浏览器设置的光标。
crosshair 光标呈现为十字线。
pointer 光标呈现为指示链接的指针(一只手)
move 此光标指示某对象可被移动。
e-resize 此光标指示矩形框的边缘可被向右(东)移动。
ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。
nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。
n-resize 此光标指示矩形框的边缘可被向上(北)移动。
se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。
sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。
s-resize 此光标指示矩形框的边缘可被向下移动(南)。
w-resize 此光标指示矩形框的边缘可被向左移动(西)。
text 此光标指示文本。
wait 此光标指示程序正忙(通常是一只表或沙漏)。
help 此光标指示可用的帮助(通常是一个问号或一个气球)。

参考于:CSS cursor 属性 | 菜鸟教程

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js限制鼠标范围</title><style>* {margin: 0;padding: 0;}.box {position: absolute;width: 100%;height: 100%;}.child {width: 400px;height: 400px;background: red;}</style>
</head><body><div class="box"><div class="child"></div></div></body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>var child = document.getElementsByClassName("child")[0];var box = document.getElementsByClassName("box")[0]// console.log(box);child.onmouseover = function () {box.style.cssText = "cursor:auto";}child.onmouseout = function () {box.style.cssText = "cursor:none";}</script></html>

jquery代码

利用mouseenter(移入)、mouseleave(移出)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js限制鼠标范围</title><style>* {margin: 0;padding: 0;}.box {position: absolute;width: 100%;height: 100%;}.child {width: 400px;height: 400px;background: red;}</style>
</head><body><div class="box"><div class="child"></div></div></body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>$(".child").mouseenter(function () {$(".box").css({ "cursor": "auto" }); //显示鼠标});$(".child").mouseleave(function () {$(".box").css({ "cursor": "none" }); //隐藏鼠标});</script></html>

onmouseover 事件 | 菜鸟教程

拓展思维:

1.甚至可以移入移出 禁用鼠标功能 。

参考: 禁用鼠标事件的方法

2.再或者 是 类似于 鼠标移到边界就不让其 移动了。可以参考下面的拖拽,我觉得尽然 div块都可以拖拽到边缘就不让拖拽了,那 鼠标移到到边缘不让其 移动了,应该也是可行的(我没试过)。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js限制拖拽范围</title><style>* {padding: 0;margin: 0;}#box1 {width: 500px;height: 500px;background: #999;position: relative;left: 100px;top: 100px;}#box {width: 100px;height: 100px;background: #334;position: absolute;cursor: move;}</style>
</head><body><div id="box1"><div id="box"></div></div>
</body>
<script>(function () {var dragging = falsevar boxX, boxY, mouseX, mouseY, offsetX, offsetYvar box = document.getElementById('box')var box1 = document.getElementById('box1')// 鼠标按下的动作box.onmousedown = down// 鼠标的移动动作document.onmousemove = move// 释放鼠标的动作document.onmouseup = up// 鼠标按下后的函数,e为事件对象function down(e) {dragging = true// 获取元素所在的坐标boxX = box.offsetLeftboxY = box.offsetTop// 获取鼠标所在的坐标mouseX = parseInt(getMouseXY(e).x)mouseY = parseInt(getMouseXY(e).y)// 鼠标相对元素左和上边缘的坐标offsetX = mouseX - boxXoffsetY = mouseY - boxY}// 鼠标移动调用的函数function move(e) {if (dragging) {// 获取移动后的元素的坐标var x = getMouseXY(e).x - offsetXvar y = getMouseXY(e).y - offsetY// 计算可移动位置的大小, 保证元素不会超过可移动范围// 此处就是父元素的宽度减去子元素宽度var width = box1.clientWidth - box.offsetWidthvar height = box1.clientHeight - box.offsetHeight// min方法保证不会超过右边界,max保证不会超过左边界x = Math.min(Math.max(0, x), width)y = Math.min(Math.max(0, y), height)// 给元素及时定位box.style.left = x + 'px'box.style.top = y + 'px'}}// 释放鼠标的函数function up(e) {dragging = false}// 函数用于获取鼠标的位置function getMouseXY(e) {var x = 0, y = 0e = e || window.eventif (e.pageX) {x = e.pageXy = e.pageY} else {x = e.clientX + document.body.scrollLeft - document.body.clientLefty = e.clientY + document.body.scrollTop - document.body.clientTop}return {x: x,y: y}}})()
// 本代码 参考与:https://www.jb51.net/article/198259.htm
</script></html>

本代码参考与:js 拖拽限制范围

js 限制鼠标移动范围相关推荐

  1. JS获取鼠标位置,兼容IE FF

    JS获取鼠标位置,兼容IE FF 由于Firefox和IE等浏览器之间对js解释的方式不一样,firefox下面获取鼠标位置不能够直接使用clientX来获取.网上说的一般都是触发mousemove事 ...

  2. html怎么鼠标经过添加蒙版遮罩,js实现鼠标移动到图片产生遮罩效果

    本文实例为大家分享了js实现鼠标移动到图片产生遮罩效果的具体代码,供大家参考,具体内容如下 mask .pic{ width:300px; height:250px; background:url(i ...

  3. C语言跟随鼠标画方框,JS拖动鼠标画出方框实现鼠标选区的方法

    本文实例讲述了JS拖动鼠标画出方框实现鼠标选区的方法.分享给大家供大家参考.具体如下: 相当实用的一个JS技巧,拖动鼠标可画出一个方框,可作为一个选区的功能,可以用来画流程图,设计草图什么的,也可以作 ...

  4. html判断坐标,js判断鼠标位置是否在某个div中的方法

    本文实例讲述了js判断鼠标位置是否在某个div中的方法.分享给大家供大家参考,具体如下: div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判 ...

  5. js禁止鼠标滑轮_js实现鼠标滑动到某个div禁止滚动

    本文实例为大家分享了js实现鼠标滑动到某个div禁止滚动的具体代码,供大家参考,具体内容如下 项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动. 这里主要是当鼠标滑动到该div时 ...

  6. JS实现鼠标点击展开/隐藏表格行

    <title>JS实现鼠标点击展开/隐藏表格行_网页代码站(www.webdm.cn)</title> <script language="javascript ...

  7. html点击控制盒子左右移动,JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例...

    JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例 发布时间:2020-10-04 12:47:25 来源:脚本之家 阅读:121 作者:s_psycho 本文实例讲述了JS实现鼠标拖拽盒子移动及右键 ...

  8. js获取鼠标所在html元素的id和属性

    js获取鼠标所在html元素的id和属性: Code: <div onclick="Get_srcElement()"> <div id="001&qu ...

  9. java 中鼠标事件_[Java教程]js中鼠标事件总结

    [Java教程]js中鼠标事件总结 0 2017-07-11 00:00:19 js中鼠标事件主要有onclick,onmousedown,onmouseup,oncontextmenu,ondblc ...

  10. html鼠标拖尾效果,JS实现鼠标移动拖尾

    本文实例为大家分享了JS实现鼠标移动拖尾的具体代码,供大家参考,具体内容如下 JS 代码 function getMousePos(event) { var e = event || window.e ...

最新文章

  1. 简单创建vsftp server
  2. 【视频】vue组件之$emit父子组件间值的传递
  3. matlab msgbox 换行,[转载]Matlab/GUI笔记
  4. 10个优秀的Objective-C和iOS开发在线视频教程
  5. .net框架读书笔记---.net文本处理(字符)
  6. 求职招聘市场复苏!市场平均薪资超8000元
  7. 代码质量度量标准_追求代码质量(2): 监视圈复杂度
  8. Atitit 获取剪贴板内容
  9. html a标签 alt,A标签、IMG标签、ALT属性详解
  10. BF算法(暴⼒算法)-- 模式匹配算法
  11. 买就赚到的以色列人工智能
  12. 常用的RTMP、RTSP、HTTP协议流直播流地址
  13. java net包 网关_Net分布式系统之六:微服务之API网关
  14. PIO模式和DMA模式的区别
  15. 成都学编程哪个学校好
  16. macOS 安装PhotoshopCC 2017
  17. linux学习好的网站
  18. 苹果、谷歌等大厂的AI面试题(转)
  19. CCF计算机软件能力认证 C++ 集合竞价
  20. 从头再来博客_免费课程:从头开始构建博客吗?

热门文章

  1. 【摘录】大学课程对照英文翻译
  2. 企业微信老是服务器异常,添加好友提示”操作异常”,企业微信需要养号吗?...
  3. vue中下载excel文件4种方法
  4. 随机积分理论中的几何布朗运动——Brown Motion and Stochastic Process
  5. linux运行搜狗拼音,搜狗输入法 for Linux版的安装图文教程
  6. 优化知乎使用体验+完整保存知乎文章、回答
  7. NRF24LE1有源RFID首选
  8. 解决阿里云oss 图片跨域问题
  9. C case和UVM TB的交互,tube_print, event_sync
  10. 让计算机读懂你的心 记李航老师计算机前沿讲座