亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

js實現圖片局部放大效果詳解

2024-05-06 16:49:12
字體:
來源:轉載
供稿:網友

圖片局部放大效果結合的知識點主要是DOM的操作,以及事件的應用,所以首先要對DOM的操作有一定了解,其次能對事件的應用有一定的累積。

js,圖片,局部放大

如上圖,可以看到,這是放大鏡的基本效果,主要分成左右兩個部分。左邊分成一張大圖,和一個導航欄,在右邊則是一個放大鏡放大后的圖片。因此,我在畫頁面的時候,大體的HTMl結構如下:

<body>  <div class="choose">    <div class="content">      <img src="images/small1.jpg" id = "small">      <div class="shadow"></div>    </div>    <ul id = "listshow">      <li class="selected">        <img src="images/small1.jpg" data-img = "images/big1.jpg"      </li>      <li>        <img src="images/small2.jpg" data-img = "images/big2.jpg"      </li>      <li>        <img src="images/small3.jpg" data-img = "images/big3.jpg"      </li>      <li>        <img src="images/small4.jpg" data-img = "images/big4.jpg"      </li>    </ul>  </div>  <div class="larger">    <img src="images/big1.jpg" id = "big">  </div></body>

在這個時候,將靜態頁面按常規方式進行布局,給予css樣式如下:

<style>    *{      padding: 0;      margin: 0;      list-style: none;    }    .choose{      width: 400px;      height: 600px;      float: left;      margin:50px 0 0 50px;    }    .content{      width: 400px;      height: 400px;      position: relative;    }    .content img {      width: 400px;      height: 400px;    }    #listshow{      width: 400px;      height: 100px;      margin-top: 20px;    }    #listshow li{      width: 98px;      height: 100px;      float: left;      border:1px solid #666;    }    #listshow li img{      width: 98px;      height: 100px;    }    #listshow .selected{      border-color: brown;    }    .larger{      width: 400px;      height: 400px;      position: absolute;      top: 50px;      left: 500px;      float: left;      overflow: hidden;      display: none;    }    #big{      width: 800px;      height: 800px;      position: absolute;      left: 0;      top: 0;    }    .shadow{      width: 200px;      height: 200px;      background-color: rgba(145,200,200,.4);      position: absolute;      left: 0;      top: 0;      z-index: 10;      display: none;    }  </style>

那么這個時候,開始寫js樣式,分布書寫的話,第一步要考慮到左邊的選項卡。選項卡我采用直接使用src賦值的方法,將滑過的圖片對應的src給大圖,代碼呈現:

for(var i = 0;i<showli.length;i++){    var showitem = showli[i];    showitem.onmouseover =showitem.onclick = function(e){      let evt = window.event||e;      for(var j =0;j<showli.length;j++){        showli[j].className = "";      }      var showimg = this.getElementsByTagName("img")[0];      var imgsrc = showimg.src;      small.src = imgsrc;      var bigsrc = showimg.getAttribute("data-img");      big.src = bigsrc;      this.className = "selected";    }  }

這樣就可以成功實現選項卡功能,比較簡單粗暴的一種方式,當然,大家使用selected結合點擊下標和大圖下標相等的這一點,也一樣可以做出來。

接下來要考慮到,鼠標在大圖上移動時,遮罩層的移動效果。值得一提的時候,這個地方其實存在一個視覺上的誤區,看起來是在滑動遮罩層,其實是鼠標的滑動,而遮罩層通過獲取鼠標的clientX,clientY來確定自己的位置,遮罩層位置獲取代碼:

content.onmousemove = function (e) {    var evt = window.event||e;    larger.style.display = "block";    shadow.style.display = "block";    var clientX = evt.clientX;    var clientY = evt.clientY;    var scrollLeft = document.documentElement.scrollLeft||document.body.scrollLeft;    var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;    var X = clientX+scrollLeft-chooseMarginL-shadowW/2;    var Y = clientY+scrollTop-chooseMarginT-shadowH/2;    if(X<=0){      X = 0;    }    if(X>=maxX){      X = maxX;    }    if(Y<=0){      Y = 0;    }    if(Y>=maxY){      Y = maxY;    }//    防止遮罩層粘滯,跟隨鼠標一起滑出大圖位置    var bigX = X*bigW/contentW;    var bigY = Y*bigH/contentH;// bigX / bigW = X / contentW,主圖和遮罩層之間存在兩倍關系,放大圖和原圖之間也有兩倍關系    shadow.style.left = X+"px";    shadow.style.top = Y+"px";    big.style.left = -bigX+"px";    big.style.top = -bigY+"px";  }

在這里,計算較多,尤其要注意遮罩層陰影,主圖以及放大圖之間的倍數關系。

到這里,基本功能就實現了,這里面涉及的計算可以適當配圖理解,尤其注意點擊位置的獲取。

以上所述是小編給大家介紹的js實現圖片局部放大效果詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人高清视频观看www| 成人久久精品视频| 久久久精品2019中文字幕神马| 欧美午夜激情小视频| 一个色综合导航| 91免费国产视频| 欧美夫妻性生活视频| 国产日韩视频在线观看| 国产精品福利网| 亚洲午夜久久久久久久| 亚洲成人网在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 色噜噜狠狠色综合网图区| 欧美一区二区三区精品电影| 中文日韩电影网站| 久久久免费av| 91在线高清视频| 国产精品爽黄69| 久久综合九色九九| 这里只有精品视频在线| 欧美极度另类性三渗透| 一本一道久久a久久精品逆3p| 在线视频国产日韩| 亚洲第一区第二区| 亚洲欧美另类中文字幕| 国内精品久久久久| 91精品国产91久久久久久最新| 久久韩国免费视频| 九九热精品视频国产| 91sao在线观看国产| 最近的2019中文字幕免费一页| 亚洲色图激情小说| 亚洲免费影视第一页| 久久黄色av网站| 国产成人久久久精品一区| 亚洲va国产va天堂va久久| 亚洲国产精品99久久| 国产精品私拍pans大尺度在线| 92福利视频午夜1000合集在线观看| 欧美成人午夜激情在线| www.亚洲人.com| 午夜精品99久久免费| 亚洲天堂第一页| 日韩免费观看av| 成人性生交大片免费观看嘿嘿视频| 8050国产精品久久久久久| 红桃视频成人在线观看| 97**国产露脸精品国产| 欧美激情一级二级| 亚洲国产91精品在线观看| 国产中文日韩欧美| 国产美女久久精品香蕉69| 精品国产91久久久久久老师| www国产精品com| 久久久免费观看视频| 97香蕉久久超级碰碰高清版| www.亚洲成人| 大伊人狠狠躁夜夜躁av一区| 日韩av影院在线观看| 136fldh精品导航福利| 欧美日韩国产色| 日韩精品一区二区三区第95| 国产精品视频色| 欧美亚洲视频在线看网址| 国产美女精品免费电影| 精品福利在线看| 国产精品h片在线播放| 欧美理论电影在线观看| 欧美大胆在线视频| 国产精品三级久久久久久电影| 精品人伦一区二区三区蜜桃网站| 色偷偷av一区二区三区| 亚洲美女中文字幕| 国产欧美亚洲精品| 中国人与牲禽动交精品| 国产欧美日韩免费| 亚洲社区在线观看| 国产成人精品一区二区三区| 亚洲级视频在线观看免费1级| 亚洲最新av网址| 午夜欧美大片免费观看| 亚洲精品v欧美精品v日韩精品| 国产欧美精品一区二区三区介绍| 91精品视频免费| 亚洲精品在线视频| 亚洲成年人影院在线| 日本久久久久亚洲中字幕| 精品一区精品二区| 欧美另类第一页| 日韩av电影在线播放| 亚洲黄色www| 日韩一区二区三区xxxx| 亚洲最新av网址| 久久福利网址导航| 日韩中文理论片| 国产精欧美一区二区三区| 91av视频在线| 亚洲免费一在线| 国产综合在线观看视频| 国产www精品| 久国内精品在线| 国产欧美在线视频| 欧美丰满老妇厨房牲生活| 亚洲精品美女网站| 精品偷拍一区二区三区在线看| 成人黄色中文字幕| 亚洲午夜久久久久久久| 亚洲成人xxx| 久久影院模特热| 日韩毛片中文字幕| 精品国产福利视频| 国产91精品久久久久久久| 亚洲韩国欧洲国产日产av| 亚洲2020天天堂在线观看| 亚洲国产欧美自拍| 久久夜色精品国产亚洲aⅴ| 精品偷拍各种wc美女嘘嘘| 国产剧情久久久久久| 亚洲一区二区三区sesese| 亚洲国语精品自产拍在线观看| 国产一区二区三区在线观看视频| 国产91在线高潮白浆在线观看| 久久人体大胆视频| 色婷婷久久av| 亚洲欧美中文日韩v在线观看| 国产性色av一区二区| 亚洲国产精品热久久| 亚洲自拍偷拍网址| 亚洲va久久久噜噜噜| 久久成人亚洲精品| 成人伊人精品色xxxx视频| 国产69精品久久久久99| 国产精品99久久99久久久二8| 久久久久久久影院| 欧美国产精品va在线观看| 午夜精品久久久久久久久久久久久| 日韩一二三在线视频播| 亚洲国产精品电影| 91视频免费在线| 欧美日韩亚洲高清| 欧美成人精品激情在线观看| 国内精品久久久久久| 欧美国产日韩精品| 国产亚洲精品日韩| 在线视频亚洲欧美| 中文字幕国产亚洲| 中文字幕少妇一区二区三区| 亚洲老头同性xxxxx| 俺也去精品视频在线观看| 久久露脸国产精品| 国产精品久久久久久久久久久久久| 国产美女精品视频| 国产精品成人一区| 国产午夜精品久久久| 亚洲精品美女久久| 国产在线观看精品| 亚洲欧美资源在线| 性金发美女69hd大尺寸| 久久成人一区二区| 日韩欧美亚洲综合| 九九久久久久久久久激情| 青草青草久热精品视频在线观看| 韩剧1988在线观看免费完整版| 亚洲人成电影在线观看天堂色|