Javascript 仿蘋果導航菜單
阿新 • • 發佈:2018-09-22
center mov 大小 nbsp 圖片 tom int src math.sqrt
使用 Javascript 制作的仿蘋果導航菜單,當鼠標移過時,使用勾股定理計算當前鼠標所在位置和圖片中心點的距離,並且用一個 scale變量 來存儲觸發縮放的位置,距離越近,scale值越接近1,圖片也就越大,這裏需要註意的是當 scale的值小於0.5時,應該讓它一直等於0.5,不然圖片會隨著鼠標距離圖片中心的距離越遠,圖片越小甚至消失。
效果如下:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5<title>蘋果導航菜單</title> 6 <style type="text/css"> 7 body{ 8 margin: 0; 9 } 10 #div1{ 11 width: 100%; 12 position: absolute; 13 bottom: 0; 14 text-align: center; 15 } 16 #div1 img{ 17 cursor: pointer; 18 } 19 </style> 20 <script type="text/javascript"> 21 window.onload=function(){ 22 document.onmousemove=function(ev){ 23 var oEvent=ev||event; 24 var oDiv=document.getElementById(‘div1‘); 25 var aImg=document.getElementsByTagName(‘img‘); 26 for(var i=0;i<aImg.length;i++){ 27 // 先使用勾股定理求出鼠標和圖片中心點的距離 28 // 圖片中心為圖片左/上邊距加自身寬/高一半 29 var x=aImg[i].offsetLeft+aImg[i].offsetWidth/2;//offsetLeft是相對父級的,此時父級是div 30 var y=aImg[i].offsetTop+oDiv.offsetTop+aImg[i].offsetHeight/2; 31 var a=x-oEvent.clientX; 32 var b=y-oEvent.clientY; 33 var dis=Math.sqrt(a*a+b*b); 34 //dis/300的300 是 當前鼠標位置與圖片中心點距離的總和 的二倍,如果想要在離圖片更遠/近的地方縮放圖片,就改變這個數值大小 35 var scale = 1-dis/300; 36 if(scale<0.5){ 37 scale=0.5; 38 } 39 aImg[i].width=scale*128;//128px是圖片原本最大的寬 40 } 41 } 42 } 43 </script> 44 </head> 45 <body> 46 <div id="div1"> 47 <img src="images/1.png" width="64"> 48 <img src="images/2.png" width="64"> 49 <img src="images/3.png" width="64"> 50 <img src="images/4.png" width="64"> 51 <img src="images/5.png" width="64"> 52 </div> 53 </body> 54 </html>
Javascript 仿蘋果導航菜單