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 相关文章推荐
jquery select操作的日期联动实现代码
Dec 06 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
js读取并解析JSON类型数据的方法
Nov 14 Javascript
js和jquery实现监听键盘事件示例代码
Jun 24 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
Aug 05 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
JS动画定时器知识总结
Mar 23 Javascript
详解如何为你的angular app构建一个第三方库
Dec 07 Javascript
vue+koa2实现session、token登陆状态验证的示例
Aug 30 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
Mar 06 Javascript
JS开发前端团队展示控制器来为成员引流
Aug 14 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
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
两款万能的php分页类
2015/11/12 PHP
smarty自定义函数用法示例
2016/05/20 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Python中拆分字符串的操作方法
2019/07/23 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
暑期实习鉴定
2013/12/16 职场文书
十佳大学生村官事迹
2014/01/09 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
诉讼授权委托书
2014/10/15 职场文书
上学路上观后感
2015/06/16 职场文书