亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS實現(xiàn)圖片放大鏡插件詳解

 更新時間:2017年11月06日 08:37:58   作者:一個檸檬  
這篇文章主要為大家詳細介紹了JS實現(xiàn)圖片放大鏡插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前  言

  我們大家經(jīng)常逛各種電商類的網(wǎng)站,商品的細節(jié)就需要用到放大鏡,這個大家一定不陌生,今天我們就做一個圖片放大鏡的插件,來看看圖片是如何被放大的……

先看一下我們要是實現(xiàn)的最終效果是怎么樣的    

看完效果,大家有思路了嗎,沒有的話,我們一起來看一下是如何實現(xiàn)的~

1實現(xiàn)思路

① 要實現(xiàn)指上后放大的效果,需要做三個div,一個用來放原圖,另一個用來放放大效果的div,最后一個是鼠標指上后需要放大部分的div(這個div我們用p標簽來代替)。

② 確定放大比例,最重要的一點,鼠標指上的div與放大效果的div,和原圖與放大圖的比例要相等。

③ 將鼠標指上后的放大效果顯示出來。

2具體實現(xiàn)步驟

 首先,我們先來建三個div。

<div id="wrapper"> 
     <!--小圖-->
    <div id="img_min"> 
       <!--圖片-->
       <img src="img/11.png" alt="min"> 
       <!--跟隨鼠標的白塊-->
       <p id="mousebg"></p> 
     </div> 
   <!--大圖-->
     <div id="img_max">
       <img id="img2_img" src="img/11.png" alt="max">
     </div> 
   </div> 

我們HTML代碼部分已經(jīng)全部完成,接下來,我們用JS來實現(xiàn)功能:

給原圖添加三個事件,分別是,鼠標進入,鼠標移動,鼠標移出。

當鼠標移入原圖時,鼠標指上時的div和放大效果的div同時顯示。

img1.onmouseover = function () { 
       //鼠標進入 
       img2.style.display = 'block'; 
       mousebg.style.display = 'block'; 
      
     }     

鼠標移出事件:

 img1.onmouseout = function () { 
       //鼠標離開 
       img2.style.display = 'none'; 
       mousebg.style.display = 'none'; 
     } 

重點是當鼠標移動時,根據(jù)p標簽與原圖的位置,來顯示大圖需要放大的部分。

var _event = event||window.event;//兼容性處理 
var mouseX = _event.clientX - img1.offsetLeft; 
 //計算鼠標相對與小圖的位置 
var mouseY = _event.clientY - img1.offsetTop; 

在做位置分析時,需要考慮四種臨界情況:

就是當鼠標從圖片的上、下、左、右剛剛進入時,并且這個距離小于鼠標指上的div寬度的二分之一時,放大效果的div顯示出來,并不移動。

//特殊情況處理,分別靠近四條邊的時候 
 if(mouseX<mousebg.offsetWidth/2){ 
  mouseX = mousebg.offsetWidth/2; 
   } 
 if(mouseX>img1.offsetWidth-mousebg.offsetWidth/2){ 
  mouseX = img1.offsetWidth-mousebg.offsetWidth/2; 
   } 
 if(mouseY<mousebg.offsetHeight/2){ 
  mouseY = mousebg.offsetHeight/2; 
 } 
 if(mouseY>img1.offsetHeight-mousebg.offsetHeight/2){ 
  mouseY = img1.offsetHeight-mousebg.offsetHeight/2; 
 } 

最后,計算大圖的顯示范圍:

 //計算大圖的顯示范圍 
 img2_img.style.left = -mul*mouseX+img2.offsetWidth/2+"px"; 
 img2_img.style.top = -mul*mouseY+img2.offsetHeight/2+"px"; 
 //使鼠標在白塊的中間 
mousebg.style.left = mouseX-mousebg.offsetWidth/2+"px"; 
mousebg.style.top = mouseY-mousebg.offsetHeight/2+"px"; 

這樣,我們用JS實現(xiàn)圖片放大鏡的插件就全部完成了。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • JavaScript使用DeviceOne開發(fā)實戰(zhàn)(三)仿微信應用

    JavaScript使用DeviceOne開發(fā)實戰(zhàn)(三)仿微信應用

    這篇文章主要介紹了JavaScript使用DeviceOne開發(fā)實戰(zhàn)(三)仿微信應用的相關資料,需要的朋友可以參考下
    2015-12-12
  • Bootstrap4一次重大更新 幾乎涉及每行代碼

    Bootstrap4一次重大更新 幾乎涉及每行代碼

    Bootstrap 4是一次重大更新,幾乎涉及每行代碼,這篇文章為大家分享了Bootstrap 4.0重大更新及亮點詳細解讀,感興趣的小伙伴們可以參考一下
    2016-05-05
  • javascript解析json格式的數(shù)據(jù)方法詳解

    javascript解析json格式的數(shù)據(jù)方法詳解

    這篇文章主要介紹了javascript解析json格式的數(shù)據(jù)方法詳解,文章通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • BootStrap入門教程(二)之固定的內(nèi)置樣式

    BootStrap入門教程(二)之固定的內(nèi)置樣式

    這篇文章主要介紹了BootStrap入門教程(二)之固定的內(nèi)置樣式的相關資料,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • 淺談js之字面量、對象字面量的訪問、關鍵字in的用法

    淺談js之字面量、對象字面量的訪問、關鍵字in的用法

    下面小編就為大家?guī)硪黄獪\談js之字面量、對象字面量的訪問、關鍵字in的用法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 利用uniapp開發(fā)APP時的調(diào)試/安卓打包等詳解

    利用uniapp開發(fā)APP時的調(diào)試/安卓打包等詳解

    uni-app??是一個使用??Vue.js開發(fā)所有前端應用的框架,開發(fā)者編寫一套代碼,下面這篇文章主要給大家介紹了關于利用uniapp開發(fā)APP時的調(diào)試/安卓打包等的相關資料,需要的朋友可以參考下
    2022-12-12
  • JS異步宏隊列微隊列原理詳解

    JS異步宏隊列微隊列原理詳解

    這篇文章主要介紹了JS異步宏隊列微隊列原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • JavaScript Canvas編寫炫彩的網(wǎng)頁時鐘

    JavaScript Canvas編寫炫彩的網(wǎng)頁時鐘

    這篇文章主要為大家詳細介紹了JavaScript Canvas編寫炫彩的網(wǎng)頁時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • javascript實現(xiàn)攝像頭拍照預覽

    javascript實現(xiàn)攝像頭拍照預覽

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)攝像頭拍照預覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • js遍歷對象key和value實戰(zhàn)舉例

    js遍歷對象key和value實戰(zhàn)舉例

    這篇文章主要給大家介紹了關于js遍歷對象key和value的相關資料,隨著JavaScript在web應用程序中的廣泛使用,遍歷對象的key和value成為了編寫復雜代碼所必需的技能,需要的朋友可以參考下
    2023-07-07

最新評論