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随机切换图片的小例子
Apr 18 Javascript
javascript中encodeURI和decodeURI方法使用介绍
May 06 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
Jun 27 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
JavaScript的arguments对象应用示例
Sep 15 Javascript
浅谈Javascript数组索引
Jul 29 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
解决vue keep-alive 数据更新的问题
Sep 21 Javascript
Vue动态创建注册component的实例代码
Jun 14 Javascript
javascript递归函数定义和用法示例分析
Jul 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
PHP安全编程之加密功能
2006/10/09 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
python字典排序实例详解
2015/05/20 Python
python中enumerate函数遍历元素用法分析
2016/03/11 Python
python 简单的多线程链接实现代码
2016/08/28 Python
Python实现的爬虫功能代码
2017/06/24 Python
python3.5绘制随机漫步图
2018/08/27 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
公司财务流程之主管工作流程
2014/03/03 职场文书
大学生就业自荐书
2014/06/16 职场文书
给老婆的保证书
2015/01/16 职场文书
初中信息技术教学计划
2015/01/22 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
《我的长生果》教学反思
2016/02/20 职场文书