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 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
jQuery 设置 CSS 属性示例介绍
Jan 16 Javascript
js中的caller和callee属性介绍和例子
Jun 07 Javascript
原生javascript 学习之js变量全面了解
Jul 14 Javascript
实例浅析js的this
Dec 11 Javascript
Ionic + Angular.js实现图片轮播的方法示例
May 21 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
Sep 13 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
Feb 03 Javascript
Nuxt配置Element-UI按需引入的操作方法
Jul 06 Javascript
基于javascript的无缝滚动动画1
Aug 07 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
在PHP中使用模板的方法
2008/05/24 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
python实现计算资源图标crc值的方法
2014/10/05 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
python 递归相关知识总结
2021/03/03 Python
关于爱国的标语
2014/06/24 职场文书
荆州古城导游词
2015/02/06 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
MySQL创建表操作命令分享
2022/03/25 MySQL