這篇文章給大家介紹jquery中怎么實(shí)現(xiàn)放大鏡效果,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)建站主要從事網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開發(fā)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、微信小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營銷、管理等多方位專業(yè)化運(yùn)作于一體。html部分:
這里需要使用2長一定比例的圖片,在頁面中按比例設(shè)置2個(gè)div中來存放這2長圖片,并在小圖片的div中按照一定的比例設(shè)一個(gè)用來放大的區(qū)域
CSS部分:
設(shè)置小圖片、大圖片、放大區(qū)域排版好后,將放大區(qū)域和大圖片隱藏display: none;,因?yàn)槲覀兒竺嫘枰髽?biāo)移動(dòng)到小圖片上是將放大區(qū)域和大圖片中對(duì)應(yīng)的部分顯示出來,其中大圖片只取對(duì)應(yīng)的位置,超出的部分隱藏overflow: hidden;
JS部分:
首先:需要通過鼠標(biāo)的hover()事件,實(shí)現(xiàn)鼠標(biāo)移動(dòng)到小圖片上時(shí),放大區(qū)域和大圖片顯示display:block ;,鼠標(biāo)移除小圖片時(shí),放大區(qū)域和大圖片再次隱藏
其次,需要獲取鼠標(biāo)在小圖片上的位置和放大區(qū)域的位置,來實(shí)現(xiàn)可以跟隨鼠標(biāo)在小圖片上移動(dòng)來選擇放大的位置mousemove(),要做到這個(gè)效果需要:
1.通過事件觸發(fā)對(duì)象event獲取鼠標(biāo)位置
event.pageX; event.pageY;
2.獲取放大區(qū)域的位置
offset().left; offset().top
3.計(jì)算出需要移動(dòng)的距離
需要移動(dòng)的距離 = 鼠標(biāo)在頁面中的X坐標(biāo) - 小圖片距離頁面左邊的距離-放大區(qū)域?qū)挾鹊囊话?/p>
需要移動(dòng)的距離 = 鼠標(biāo)在頁面中的Y坐標(biāo) - 小圖片距離頁面頂部的距離-放大區(qū)域高度的一半
4.同過jquery的css()函數(shù)實(shí)現(xiàn)移動(dòng)
最后,實(shí)現(xiàn)大圖片對(duì)應(yīng)的移動(dòng),這里要注意,大圖片的一定是與放大區(qū)域移動(dòng)的方向相反的
//為小圖片添加hover事件 鼠標(biāo)移動(dòng)到小圖片上時(shí),放大區(qū)域和大圖片的div需要顯示出來,反之隱藏 $(".img").hover(function(){ $(".bimg").css("display","block"); $("#move").css("display","block"); },function(){ $(".bimg").css("display","none"); $("#move").css("display","none"); }); //需要為小圖片的div添加一個(gè)鼠標(biāo)移動(dòng)時(shí)間 $(".img").mousemove(function(event){ //需要獲取鼠標(biāo)移動(dòng)是距離左邊和頂端的距離 var x = event.pageX; var y = event.pageY; //需要計(jì)算放大區(qū)域的需要移動(dòng)到的位置 var nx = x - $(".img").offset().left-$("#move").width()/2; var ny = y - $(".img").offset().top-$("#move").height()/2; //判斷移動(dòng)后是否已經(jīng)超出的范圍 if(nx < 0){ //左邊超出 nx = 0; } if(nx > $(".img").width()-$("#move").width()){//右邊超出 nx = $(".img").width()-$("#move").width(); } if(ny < 0){ //頂端超出 ny = 0; } if(ny > $(".img").height()-$("#move").height()){//底部超出 ny = $(".img").height()-$("#move").height(); } //設(shè)置放大區(qū)域的移動(dòng) $("#move").css({ left:nx+"px", top:ny+"px" }); //設(shè)置大圖片的移動(dòng) 大圖片的移動(dòng)方向與放大區(qū)域正好相反 $(".bimg>img").css({ left:-nx*$("#move").width()/$(".simg").width()+"px", top:-ny*$("#move").height()/$(".simg").height()+"px" });
關(guān)于jquery中怎么實(shí)現(xiàn)放大鏡效果就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。