日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js实现鼠标移动

發布時間:2023/12/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js实现鼠标移动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


要求:

  • 鼠標移入美女圖片,出現半透明正方塊
  • 鼠標移出美女圖片,隱藏半透明正方塊
  • 鼠標在美女圖片區域移動,半透明正方塊隨著移動
  • 半透明正方塊移動到美女圖片四邊界時,停止移動
  • 點擊下面小圖切換大圖
  • html結構部分

    <!DOCTYPE html> <html lang="en"><head><title>Document</title><link rel="stylesheet" href="./css/fdj.css"></head><body><!-- 包裹整個項目的大盒子 --><div class="container"><!-- 放大鏡顯示的效果 --><div class="bigImg"><p></p></div><!-- 點擊顯示按鈕ul --><ul><li><img src="./images/show_1.jpg" alt=""></li><li><img src="./images/show_2.jpg" alt=""></li><li><img src="./images/show_3.jpg" alt=""></li><li><img src="./images/show_4.jpg" alt=""></li></ul></div><script src="./js/img.js"></script> </body> </html>

    css樣式

    * {margin: 0;padding: 0; }.big {width: 300px;height: 300px;background-color: skyblue;position: relative;background: url(../images/show_1.jpg);/* background */ }.small {width: 100px;height: 100px;position: absolute;background-color: yellow;opacity:0.5;left: 0px;top: 0px;/* 當前元素事件不起作用 */pointer-events: none;display: none; } .container{width: 500px;height: 500px;/* background-color: pink; */ }ul{list-style: none; }ul li{width: 50px;height: 50px;background-color: red;margin-left: 20px;float: left; }ul li img{width: 50px; }

    js代碼部分

    var divEle = document.querySelector('.bigImg') divEle.classList.add('big') var pEle = document.querySelector('p') pEle.classList.add('small')//給ulEle添加一個點擊事件 var ulEle = document.querySelector('ul') ulEle.addEventListener('click',function(e){e = e || window.eventlet target = e.target || e.srcElement//獲取到事件委托的圖片地址let url = target.getAttribute('src')divEle.style.background = `url(${url})`})//給大盒子綁定鼠標移動事件、返回移動值 divEle.onmousemove = function (e) {e = e || window.event //事件對象console.log('X ', e.offsetX, ' Y :', e.offsetY);//將現在的鼠標在的x,y值傳給小盒子,并讓鼠標永遠在小盒子中間var bigPosX = e.offsetX - pEle.clientWidth / 2var bigPosY = e.offsetY - pEle.clientHeight / 2// 小盒子的邊界問題//右邊界臨界值 = 大盒子的寬度 - 小盒子的寬度var maxRight = divEle.clientWidth - pEle.clientWidth//下邊界臨界值 = 大盒子的高度 - 小盒子的高度var maxBottom = divEle.clientHeight - pEle.clientHeight// 左邊界if (bigPosX < 0) {bigPosX = 0}//右邊界值if (bigPosX > maxRight) {bigPosX = maxRight}//上邊界值if (bigPosY < 0) {bigPosY = 0}//下邊界值if (bigPosY > maxBottom) {bigPosY = maxBottom}//將值賦值給小盒子的position的left和top屬性中去pEle.style.left = bigPosX + 'px' //將鼠標X軸的位置傳給小盒子的positionpEle.style.top = bigPosY + 'px' //將鼠標y軸的位置傳給小盒子的position }//小盒子隱藏顯示: 摸到大盒子顯示小盒子 divEle.onmouseover = function(){pEle.style.display = 'block' } divEle.onmouseout = function(){pEle.style.display = 'none' }

    總結

    以上是生活随笔為你收集整理的js实现鼠标移动的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。