本文实例为大家分享了js鼠标跟随效果展示的具体代码,供大家参考,具体内容如下
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Document & lt; style> 身体,div { 保证金:0; 填充:0; } #箱{ 位置:相对; 保证金:20 px汽车; 宽度:300 px; 身高:300 px; 背景:# 008000; } 马克# { 位置:绝对的; 上图:0; 左:0; 宽度:100 px; 身高:100 px; 背景:红色; } & lt;/style> & lt;/head> & lt; body> & lt; div id=昂凶印痹? & lt;/div> & lt; script> var盒=. getelementbyid(盒); 盒子。鼠标移到目标上=函数(e) { e=e | | window.event; 马克var=document.createElement (div); 马克。id=奥砜恕? this.appendChild(马克); mark.style。左=e。clientX——这一点。offsetLeft + 5 +“px”; mark.style。=e。clientY——这一点。offsetTop + 5 +“px”;//阻止马克盒子的onmouseover事件的冒泡传播 马克。鼠标移到目标上=函数(e) { e=e | | window.event; e。stopPropagation & # 63;e.stopPropagation (): e。cancelBubble=true; } 马克。onmouseout=function (e) { e=e | | window.event; e。stopPropagation & # 63;e.stopPropagation (): e。cancelBubble=true; } }//以下代码会出现一个问题,当鼠标移动过快的时候,鼠标会进入到马克这个盒子,会触发它的鼠标移至行为,由于事件的冒泡传播机制,导致盒子的鼠标悬停会重新被触发,导致红色盒子一直在不断的创建 盒子。onmousemove=function (e) { e=e | | window.event; 马克var=. getelementbyid(“马克”); 如果(马克){ mark.style。左=e。clientX——这一点。offsetLeft + 5 +“px”; mark.style。=e。clientY——这一点。offsetTop + 5 +“px”; } }//依然有问题:鼠标快速移动,首先会到马克上,此时浏览器在计算马克的位置,计算完成,马克到达指定的位置,此时鼠标又重新回到盒子上,触发了盒子的鼠标悬停,也触发了马克的mouseout,也会传播到盒子的mouseout上,会把马克先删除,然后在创建 盒子。onmouseout=function (e) { e=e | | window.event; 马克var=. getelementbyid(“马克”); 如果(马克){ this.removeChild(马克); } }//上面代码也可以通过将超过和事件分别改为进入和离开//onmouseenter和onmouseover都是鼠标滑上去的行为,但是onmouseenter浏览器默认阻止了它的冒泡传播(马克的onmouseenter行为触发,不会传播到盒子);而onmouseover是存在冒泡传播的,想要阻止的话需要手动阻止 & lt;/script> & lt;/body> & lt;/html> >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
简单实现js鼠标跟随效果