JavaScript实现跟随鼠标移动的盒子


Posted in Javascript onJanuary 28, 2021

本文实例为大家分享了JavaScript实现跟随鼠标移动的具体代码,供大家参考,具体内容如下

跟随鼠标移动的盒子(包括检测边界值)

效果图:

JavaScript实现跟随鼠标移动的盒子

代码:

<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  div {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100px;
    height: 100px;
    background-color: red;
  }
</style>
 
<body>
  <div>111111111</div>
  <script>
    var div = document.getElementsByTagName('div')[0];
    div.onmousedown = function(e) {
      e = window.event || e;
      // 鼠标按下 获取鼠标距离页面左侧距离
      var x = e.clientX;
      // 获取鼠标距离页面上侧距离
      var y = e.clientY;
      // 元素距离页面左侧距离
      var elex = div.offsetLeft;
      // 元素距离页面上侧距离
      var eley = div.offsetTop;
      // 相减得到鼠标距离元素的距离
      var X = x - elex;
      var Y = y - eley;
      console.log(X, Y);
      document.onmousemove = function(e) {
          e = window.event || e;
          // 鼠标移动过程中 获取鼠标距离页面距离
          var movex = e.clientX;
          var movey = e.clientY;
          // 1.左侧边界值
          // 元素移动过程中距离页面左侧距离
          var leftx = movex - X;
          var lefty = movey - Y;
          // 1.左侧边界值
          if (leftx <= 0) {
            leftx = 0;
          }
          // 2.上侧边界值
          if (lefty <= 0) {
            lefty = 0
          }
          // 3.右侧边界值
          // 页面可视区宽 -元素宽
          var rightx = document.documentElement.clientWidth - div.offsetWidth;
          if (leftx >= rightx) {
            leftx = rightx
          }
          // 4.下侧边界值
          // 页面可视区高 -元素高
          var righty = document.documentElement.clientHeight - div.offsetHeight;
          if (lefty >= righty) {
            lefty = righty;
          }
          // 鼠标移动过程中 获取鼠标距离页面距离 - 鼠标距离元素的距离 =元素的left top值
          div.style.left = leftx + 'px';
          div.style.top = lefty + 'px';
 
 
 
        }
        // 抬起清除移动事件
      document.onmouseup = function() {
          document.onmousemove = null;
        }
        // 阻止默认事件
      return false;
 
    }
  </script>
</body>
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
Javascript 设计模式(二) 闭包
May 26 Javascript
jquery选择器的选择使用及性能介绍
Jan 16 Javascript
js读写(删除)Cookie实例详解
Apr 17 Javascript
从零学习node.js之文件操作(三)
Feb 21 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
vue + vuex todolist的实现示例代码
Mar 09 Javascript
详解vue-router的Import异步加载模块问题的解决方案
May 13 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 Javascript
vue.js实现点击图标放大离开时缩小的代码
Jan 27 #Vue.js
使用JS实现鼠标放上图片进行放大离开实现缩小功能
Jan 27 #Javascript
vscode自定义vue模板的实现
Jan 27 #Vue.js
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 #Vue.js
js实现鼠标切换图片(无定时器)
Jan 27 #Javascript
JavaScript实现切换多张图片
Jan 27 #Javascript
jquery实现点击左右按钮切换图片
Jan 27 #jQuery
You might like
PL-880隐藏功能
2021/03/01 无线电
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
php分页函数完整实例代码
2014/09/22 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
php微信开发自定义菜单
2016/08/27 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python中bisect模块用法实例
2014/09/25 Python
python实现简单温度转换的方法
2015/03/13 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
Python中常见的数制转换有哪些
2020/05/27 Python
python如何输出反斜杠
2020/06/18 Python
详解Python IO编程
2020/07/24 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
记帐员岗位责任制
2014/02/08 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
 Python 中 logging 模块使用详情
2022/03/03 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python