全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

简单实现js鼠标跟随效果

本文实例为大家分享了js鼠标跟随效果展示的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style>
  body,div{
   margin:0;
   padding:0;

  }
  #box{
   position:relative;
   margin:20px auto;
   width:300px;
   height:300px;
   background:#008000;
  }
  #mark{
   position:absolute;
   top:0;
   left:0;
   width:100px;
   height:100px;
   background:red;
  }
 </style>
</head>
<body>
 <div id='box'>
  
 </div>
 <script>
  var box = document.getElementById('box');

  box.onmouseover = function(e){
   e = e || window.event;
   var mark = document.createElement('div');
   mark.id = "mark";
   this.appendChild(mark);
   mark.style.left = e.clientX - this.offsetLeft + 5 + "px";
   mark.style.top = e.clientY - this.offsetTop + 5 + "px";
   //阻止mark盒子的onmouseover事件的冒泡传播
   mark.onmouseover = function(e){
    e = e || window.event;
    e.stopPropagation ? e.stopPropagation():e.cancelBubble = true;
   }
   mark.onmouseout = function(e){
    e = e || window.event;
    e.stopPropagation ? e.stopPropagation():e.cancelBubble = true;
   }
  }
  //以下代码会出现一个问题,当鼠标移动过快的时候,鼠标会进入到mark这个盒子,会触发它的mouseover行为,由于事件的冒泡传播机制,导致box的mouseover会重新被触发,导致红色盒子一直在不断的创建
  box.onmousemove = function(e){
   e = e || window.event;
   var mark = document.getElementById('mark');
   if(mark){
    mark.style.left = e.clientX - this.offsetLeft + 5 + "px";
    mark.style.top = e.clientY - this.offsetTop + 5 + "px";
   }

  }
  //依然有问题:鼠标快速移动,首先会到mark上,此时浏览器在计算mark的位置,计算完成,mark到达指定的位置,此时鼠标又重新回到box上,触发了box的mouseover,也触发了mark的mouseout,也会传播到box的mouseout上,会把mark先删除,然后在创建
  box.onmouseout = function(e){
   e = e || window.event;
   var mark = document.getElementById('mark');
   if(mark){
    this.removeChild(mark);
   }

  }

  //上面代码也可以通过将over和out事件分别改为enter和leave 
  //onmouseenter和onmouseover都是鼠标滑上去的行为,但是onmouseenter浏览器默认阻止了它的冒泡传播(mark的onmouseenter行为触发,不会传播到box);而onmouseover是存在冒泡传播的,想要阻止的话需要手动阻止
 </script>
</body>
</html>

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


# js  # 鼠标跟随  # js实现简单鼠标跟随效果的方法  # js鼠标跟随运动效果  # javascript鼠标跟随运动3种效果(眼球效果  # 苹果菜单  # 方向跟随)  # Js鼠标跟随代码小手点击实例方法  # JS实现的简单鼠标跟随DiV层效果完整实例  # JS实现的鼠标跟随代码(卡通手型点击效果)  # js实现鼠标跟随运动效果  # 原生js实现鼠标跟随效果  # JavaScript实现的鼠标跟随特效示例【2则实例】  # js实现鼠标跟随小游戏  # 鼠标  # 都是  # 也会  # 可以通过  # 一个问题  # 会把  # 大家分享  # 过快  # 具体内容  # 大家多多  # 当鼠标  # body  # div  # padding  # margin  # title  # UTF  # style  # Document  # auto 


相关文章: 如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  官网网站制作腾讯审核要多久,联想路由器newifi官网  深入理解Android中的xmlns:tools属性  c++ stringstream用法详解_c++字符串与数字转换利器  独立制作一个网站多少钱,建立网站需要花多少钱?  为什么Go需要go mod文件_Go go mod文件作用说明  ,如何利用word制作宣传手册?  建站VPS配置与SEO优化指南:关键词排名提升策略  定制建站流程步骤详解:一站式方案设计与开发指南  网站制作公司,橙子建站是合法的吗?  nginx修改上传文件大小限制的方法  网站制作需要会哪些技术,建立一个网站要花费多少?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何选择高效可靠的多用户建站源码资源?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何选择香港主机高效搭建外贸独立站?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  如何高效完成自助建站业务培训?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  孙琪峥织梦建站教程如何优化数据库安全?  模具网站制作流程,如何找模具客户?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  手机网站制作与建设方案,手机网站如何建设?  如何获取开源自助建站系统免费下载链接?  如何有效防御Web建站篡改攻击?  Android自定义listview布局实现上拉加载下拉刷新功能  如何制作算命网站,怎么注册算命网站?  建站之星在线版空间:自助建站+智能模板一键生成方案  广州营销型建站服务商推荐:技术优势与SEO优化解析  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  c# 在ASP.NET Core中管理和取消后台任务  如何选择PHP开源工具快速搭建网站?  学校建站服务器如何选型才能满足性能需求?  常州企业建站如何选择最佳模板?  如何通过FTP空间快速搭建安全高效网站?  如何在Golang中使用replace替换模块_指定本地或远程路径  三星网站视频制作教程下载,三星w23网页如何全屏?  如何规划企业建站流程的关键步骤?  如何通过可视化优化提升建站效果?  ,购物网站怎么盈利呢?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在云主机快速搭建网站站点?  如何在阿里云高效完成企业建站全流程?  如何在阿里云虚拟主机上快速搭建个人网站?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  C++如何将C风格字符串(char*)转换为std::string?(代码示例) 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。