最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡(jiǎn)單實(shí)現(xiàn)js鼠標(biāo)跟隨效果

 更新時(shí)間:2020年08月02日 10:56:17   作者:diasa  
這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)js鼠標(biāo)跟隨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js鼠標(biāo)跟隨效果展示的具體代碼,供大家參考,具體內(nèi)容如下

<!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;
   }
  }
  //以下代碼會(huì)出現(xiàn)一個(gè)問題,當(dāng)鼠標(biāo)移動(dòng)過快的時(shí)候,鼠標(biāo)會(huì)進(jìn)入到mark這個(gè)盒子,會(huì)觸發(fā)它的mouseover行為,由于事件的冒泡傳播機(jī)制,導(dǎo)致box的mouseover會(huì)重新被觸發(fā),導(dǎo)致紅色盒子一直在不斷的創(chuàng)建
  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";
   }

  }
  //依然有問題:鼠標(biāo)快速移動(dòng),首先會(huì)到mark上,此時(shí)瀏覽器在計(jì)算mark的位置,計(jì)算完成,mark到達(dá)指定的位置,此時(shí)鼠標(biāo)又重新回到box上,觸發(fā)了box的mouseover,也觸發(fā)了mark的mouseout,也會(huì)傳播到box的mouseout上,會(huì)把mark先刪除,然后在創(chuàng)建
  box.onmouseout = function(e){
   e = e || window.event;
   var mark = document.getElementById('mark');
   if(mark){
    this.removeChild(mark);
   }

  }

  //上面代碼也可以通過將over和out事件分別改為enter和leave 
  //onmouseenter和onmouseover都是鼠標(biāo)滑上去的行為,但是onmouseenter瀏覽器默認(rèn)阻止了它的冒泡傳播(mark的onmouseenter行為觸發(fā),不會(huì)傳播到box);而onmouseover是存在冒泡傳播的,想要阻止的話需要手動(dòng)阻止
 </script>
</body>
</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript中return返回多個(gè)值的三個(gè)方法實(shí)現(xiàn)

    JavaScript中return返回多個(gè)值的三個(gè)方法實(shí)現(xiàn)

    本文主要介紹了JavaScript中return返回多個(gè)值的三個(gè)方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • JS實(shí)現(xiàn)圖片高斯模糊切換效果的焦點(diǎn)圖實(shí)例

    JS實(shí)現(xiàn)圖片高斯模糊切換效果的焦點(diǎn)圖實(shí)例

    這篇文章主要給大家介紹了利用原生JS如何實(shí)現(xiàn)圖片高斯模糊切換效果的焦點(diǎn)圖,文中給出了完整的實(shí)例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,下面來(lái)一起看看吧。
    2017-01-01
  • JavaScript手機(jī)振動(dòng)API

    JavaScript手機(jī)振動(dòng)API

    現(xiàn)代瀏覽器里提供的新的API越來(lái)越傾向于移動(dòng)手機(jī)應(yīng)用,這篇文章主要為大家詳細(xì)介紹了JavaScript手機(jī)振動(dòng)API的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • 解決js中的setInterval清空定時(shí)器不管用問題

    解決js中的setInterval清空定時(shí)器不管用問題

    這篇文章主要介紹了解決js中的setInterval清空定時(shí)器不管用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-11-11
  • 原生javascript實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)效果

    原生javascript實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)效果

    這篇文章主要介紹了原生javascript實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)效果的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • js調(diào)試工具console.log()方法查看js代碼的執(zhí)行情況

    js調(diào)試工具console.log()方法查看js代碼的執(zhí)行情況

    以往都是使用alert的方式查看js代碼的執(zhí)行情況,今天看到有朋友使用console.log函數(shù)打印輸出函數(shù),變量,對(duì)象,下邊就console.log的使用情況進(jìn)行記錄
    2014-08-08
  • JavaScript打開本地文件夾的4種方法舉例

    JavaScript打開本地文件夾的4種方法舉例

    這篇文章主要給大家介紹了關(guān)于JavaScript打開本地文件夾的4種方法,JavaScript在前端開發(fā)中是一種使用非常廣泛的編程語(yǔ)言,常用于實(shí)現(xiàn)網(wǎng)頁(yè)中的交互和動(dòng)態(tài)效果,需要的朋友可以參考下
    2023-07-07
  • JS實(shí)現(xiàn)的簡(jiǎn)單拖拽功能示例

    JS實(shí)現(xiàn)的簡(jiǎn)單拖拽功能示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的簡(jiǎn)單拖拽功能,涉及javascript鼠標(biāo)事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • JS實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播案例

    JS實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播案例

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 利用js-cookie實(shí)現(xiàn)前端設(shè)置緩存數(shù)據(jù)定時(shí)失效

    利用js-cookie實(shí)現(xiàn)前端設(shè)置緩存數(shù)據(jù)定時(shí)失效

    這篇文章主要介紹了利用js-cookie實(shí)現(xiàn)前端設(shè)置緩存數(shù)據(jù)定時(shí)失效,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

集贤县| 华容县| 凯里市| 铁岭县| 宾阳县| 托克逊县| 凤凰县| 景洪市| 土默特左旗| 化隆| 宁河县| 康马县| 读书| 田阳县| 古丈县| 台安县| 宁陕县| 梓潼县| 萍乡市| 辉南县| 萨嘎县| 光泽县| 祥云县| 乐安县| 府谷县| 东明县| 玉溪市| 扎鲁特旗| 四会市| 交城县| 西平县| 焉耆| 东光县| 泰来县| 高青县| 永登县| 鄂尔多斯市| 绥宁县| 车致| 三门峡市| 轮台县|