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 相关文章推荐
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
javascript常见用法总结
May 22 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
浅谈javascript中return语句
Jul 15 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 Javascript
js获取Get值的方法
Sep 29 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
Node.js制作简单聊天室
Jan 12 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
React Native项目框架搭建的一些心得体会
May 28 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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
webpack入门必知必会
2017/01/16 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
Python 爬虫性能相关总结
2020/08/03 Python
python 写一个水果忍者游戏
2021/01/13 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
空指针到底是什么
2012/08/07 面试题
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
退休感言
2014/01/28 职场文书
公司端午节活动方案
2014/02/04 职场文书
户外婚礼策划方案
2014/02/08 职场文书
服装采购员岗位职责
2014/03/15 职场文书
三爱活动实施方案
2014/03/19 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
实施意见格式范本
2015/06/05 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript