這篇文章主要介紹原生js實現放大鏡的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯是一家集網站建設、成都網站建設、網站頁面設計、網站優(yōu)化SEO優(yōu)化為一體的專業(yè)網站制作公司,已為成都等多地近百家企業(yè)提供網站建設服務。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設計最適合用戶的網站頁面。 合作只是第一步,服務才是根本,我們始終堅持講誠信,負責任的原則,為您進行細心、貼心、認真的服務,與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。原理:左邊陰影在左邊圖片上從左到右移動的時候,右邊大框也在右邊大圖片上從左到右移動(盡管在視覺、原理和代碼上是相反的);所謂放大,其實就是一張原本就很小的圖對應一張原本就很大的圖。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> *{ margin:0; padding:0; } .small{ width: 400px; height: 400px; position: relative; background: url(http://www.qdfuns.com/misc.php?mod=attach&genre=editor&aid=7dca2c442134be6a652e087296c8ac80) no-repeat center; border: 1px solid #ccc; } .small .inner{ width: 100px; height: 100px; background: yellow; opacity: 0.5; filter: alpha(opacity=50); position: absolute; left:0; top:0; display: none; } .big{ width: 400px; height: 400px; position: absolute; left:410px; top:0; overflow: hidden; border: 1px solid #ccc; display: none; } .big img{ width: 200%; height: 200%; position: absolute; left:0; top:0; } </style> </head> <body> <div id="small" class="small"> <div class="inner"></div> </div> <div id="big" class="big"> <img src="http://www.qdfuns.com/misc.php?mod=attach&genre=editor&aid=d7dec5aeff022ea80c47eb76dc5838d8" alt=""/> </div> <script> var small=document.getElementById('small'); var inner=small.getElementsByTagName('div')[0]; var big=document.getElementById('big'); var img=big.getElementsByTagName('img')[0]; //當鼠標移入small的時候,inner和big顯示 small.onmouseover=function(){ big.style.display='block'; inner.style.display='block'; }; //當鼠標在small移動的時候:1)鼠標在inner的中間 2)inner跟隨鼠標移動 small.onmousemove=function(e){ e=e||window.event; var left=e.clientX-this.offsetLeft-inner.offsetWidth/2; var top=e.clientY-this.offsetTop-inner.offsetHeight/2; if(left<=0){ left=0; }else if(left>=this.offsetWidth-inner.offsetWidth){ left=this.offsetWidth-inner.offsetWidth } if(top<=0){ top=0; }else if(top>=this.offsetHeight-inner.offsetHeight){ top=this.offsetHeight-inner.offsetHeight } inner.style.left= left+'px'; inner.style.top= top+'px'; //當inner移動的時候,大圖跟著一起移動,并且,大圖和inner移動的方向相反; //或者理解為:左邊陰影在圖片上從左到右移動的時候,右邊大框也在大圖片上從左到右移動(盡管視覺上是相反的)。 img.style.left=left/(small.offsetWidth-inner.offsetWidth)*(big.offsetWidth-img.offsetWidth)+'px'; img.style.top=top/(small.offsetHeight-inner.offsetHeight)*(big.offsetHeight-img.offsetHeight)+'px'; }; //當鼠標移出的時候,inner和big隱藏; small.onmouseout=function(){ big.style.display='none'; inner.style.display='none'; } </script> </body> </html>
以上是“原生js實現放大鏡的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯網站建設公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯建站jinyejixie.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁題目:原生js實現放大鏡的示例分析-創(chuàng)新互聯
文章出自:http://jinyejixie.com/article10/dpoido.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站設計、軟件開發(fā)、域名注冊、網站制作、定制網站、微信公眾號
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯