摘要:使用鼠標的坐標值減去遮罩層的一半的寬度,從而得到遮罩層顯示的位置。最后添加鼠標離開的監(jiān)聽事件,當鼠標離開商品大圖時隱藏遮罩層以及放大鏡。
在詳情頁瀏覽時商品大圖還是不能完全看清楚商品的細節(jié),該特效實現(xiàn)鼠標懸停在商品大圖上時,在商品大圖右側(cè)出現(xiàn)放大鏡效果并根據(jù)鼠標的位置來改變右側(cè)大圖的顯示內(nèi)容,放大鏡中的內(nèi)容和鼠標懸停位置的內(nèi)容相同。該特效的實現(xiàn)效果圖為:
對商品大圖添加鼠標監(jiān)聽事件,首先監(jiān)聽鼠標的進入事件,在監(jiān)聽事件中將鼠標在大圖上遮罩層以及放大圖片的顯示區(qū)域設(shè)置為可見。監(jiān)聽鼠標的移動事件,首先獲取相關(guān)坐標,獲取大圖在頁面中的相對位置,再獲取鼠標相對于頁面的位置,使用后者坐標減去前者坐標得到鼠標相對于大圖的位置。使用鼠標的坐標值減去遮罩層的一半的寬度,從而得到遮罩層顯示的位置。使用遮罩層的坐標值乘以放大倍數(shù)得到放大鏡里圖片的坐標值,這里放大值設(shè)置為2。根據(jù)這些得到的坐標值設(shè)置遮罩層的坐標,以及放大鏡區(qū)域中圖片坐標。最后添加鼠標離開的監(jiān)聽事件,當鼠標離開商品大圖時隱藏遮罩層以及放大鏡。
具體實現(xiàn)代碼:
//magnify //放大鏡效果,首先要獲取商品大圖div的jQuery對象 var $imgWrap=$(".detail-img-main") //監(jiān)聽鼠標進入事件 $imgWrap.mouseenter(function (e) { //#imgLoc為遮罩層,使其顯示 $("#imgLoc").css("display","block") //.mainfyImg即放大鏡顯示元素,也使其顯示 $(".manifyImg").css("display","block") }) //監(jiān)聽鼠標離開事件 $imgWrap.mouseleave(function (e) { //當鼠標離開時,使遮罩層隱藏 $("#imgLoc").css("display","none") //當鼠標離開時,使放大鏡隱藏 $(".manifyImg").css("display","none") }) //監(jiān)聽鼠標的移動事件 $imgWrap.mousemove(function (e) { //得到商品大圖的相對于頁面的橫坐標 var imgX=document.getElementById("imgMainWrap").getBoundingClientRect().left //得到商品大圖的相對于頁面的縱坐標 var imgY=document.getElementById("imgMainWrap").getBoundingClientRect().top //得到鼠標相對于商品大圖的橫坐標,使用鼠標相對于頁面的橫坐標減去商品大圖相對于頁面的坐標 var cursorX=e.clientX-imgX //得到鼠標相對于商品大圖的縱坐標 var cursorY=e.clientY-imgY //得到遮罩層的坐標,106是遮罩層邊長的一半 var maskX=(cursorX-106)+"px" var maskY=(cursorY-106)+"px" //保證遮罩層是完整的 if (cursorX<106) { maskX="0px" }else if (cursorX>310) { maskX="200px" } if (cursorY<106) { maskY="0px" }else if (cursorY>310) { maskY="200px" } //計算得到放大鏡中圖片的顯示位置 var maginfyX=-parseInt(maskX)*2+"px" var maginfyY=-parseInt(maskY)*2+"px" //設(shè)置遮罩層的位置 $("#imgLoc").css("left",maskX) $("#imgLoc").css("top",maskY) //設(shè)置放大鏡中圖片的位置 $(".manifyImg img").css("left",maginfyX) $(".manifyImg img").css("top",maginfyY) })
以下是HTML結(jié)構(gòu)
div.detail-img
a(href="javascript:;").detail-img-main#imgMainWrap img(src="./images/detail/band/b1.jpg")#imgMain div#imgLoc div.manifyImg img(src="./images/detail/band/b1.jpg")
請輸入代碼
查看完整項目可以去我的GitHub,歡迎大家的下載、提問和關(guān)注哈。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84010.html
摘要:使用鼠標的坐標值減去遮罩層的一半的寬度,從而得到遮罩層顯示的位置。最后添加鼠標離開的監(jiān)聽事件,當鼠標離開商品大圖時隱藏遮罩層以及放大鏡。 在詳情頁瀏覽時商品大圖還是不能完全看清楚商品的細節(jié),該特效實現(xiàn)鼠標懸停在商品大圖上時,在商品大圖右側(cè)出現(xiàn)放大鏡效果并根據(jù)鼠標的位置來改變右側(cè)大圖的顯示內(nèi)容,放大鏡中的內(nèi)容和鼠標懸停位置的內(nèi)容相同。該特效的實現(xiàn)效果圖為:showImg(https://...
摘要:使用鼠標的坐標值減去遮罩層的一半的寬度,從而得到遮罩層顯示的位置。最后添加鼠標離開的監(jiān)聽事件,當鼠標離開商品大圖時隱藏遮罩層以及放大鏡。 在詳情頁瀏覽時商品大圖還是不能完全看清楚商品的細節(jié),該特效實現(xiàn)鼠標懸停在商品大圖上時,在商品大圖右側(cè)出現(xiàn)放大鏡效果并根據(jù)鼠標的位置來改變右側(cè)大圖的顯示內(nèi)容,放大鏡中的內(nèi)容和鼠標懸停位置的內(nèi)容相同。該特效的實現(xiàn)效果圖為:showImg(https://...
摘要:前端日報點贊通道精選聽說你沒來騰訊前端求職直播課筆試篇淘寶漏洞修補記一次踩坑記錄中的對象精讀發(fā)布中文深入理解筆記塊級作用域綁定架構(gòu)經(jīng)驗分享深入理解筆記字符串和正則表達式架構(gòu)經(jīng)驗分享深入理解筆記導讀架構(gòu)經(jīng)驗分享第期種使用提升應(yīng) 2017-07-16 前端日報 GitHub點贊通道 精選 聽說你沒來 JSConf 2017騰訊前端求職直播課——筆試篇淘寶 flexible.js 漏洞修補:...
摘要:晚上又不想看書屋里光線不好,最近正好在跟著權(quán)哥學習和,不如自己寫一個以后能用到的后臺模板來玩玩練練手。把重寫成不太確定,明天去問問權(quán)哥,哎呀寫文檔是真的有用把這個文件和文件都拖到網(wǎng)站根目錄下,然后把中的加載框架引導文件改成正確讀取的路徑。 今天下班回來走在路上,剛下過雨,又出了太陽。 步行從公司到租的房子里,路過人民公園,空氣一度讓人覺的這根本不是鄭州的樣子。公司里有些讓人不快的事情也...
閱讀 2729·2023-04-25 19:13
閱讀 4092·2021-09-22 15:34
閱讀 3079·2019-08-30 14:23
閱讀 1495·2019-08-29 17:17
閱讀 1636·2019-08-29 16:05
閱讀 1567·2019-08-29 13:26
閱讀 1242·2019-08-29 13:19
閱讀 582·2019-08-29 13:16