這篇文章給大家介紹jquery中怎么實現放大鏡效果,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
html部分:
這里需要使用2長一定比例的圖片,在頁面中按比例設置2個div中來存放這2長圖片,并在小圖片的div中按照一定的比例設一個用來放大的區域
<div class="img"> <div class="simg"><!--小圖片--> <img src="../作業/images/small.jpg"/> <div id="move"></div><!--放大區域--> </div> <div class="bimg"><!--大圖片--> <img src="../作業/images/big.jpg" /> </div> </div>
CSS部分:
設置小圖片、大圖片、放大區域排版好后,將放大區域和大圖片隱藏display: none;,因為我們后面需要鼠標移動到小圖片上是將放大區域和大圖片中對應的部分顯示出來,其中大圖片只取對應的位置,超出的部分隱藏overflow: hidden;
<style type="text/css">
.img{width: 350px;height: 350px;border: 1px solid #ccc;margin: 100px;position: relative;cursor:move;}
.bimg{position: relative;top: -400px;left: 500px;
border: 1px solid #ccc;width: 400px;height: 400px;
overflow: hidden;display: none;}
#move{position: absolute;width: 100px;height: 100px;
background-color: rgba(8,152,202,0.2);top: 0px;
left: 0px;display: none;}
.bimg>img{position: absolute;left: 0px;top: 0px;}
</style>JS部分:
首先:需要通過鼠標的hover()事件,實現鼠標移動到小圖片上時,放大區域和大圖片顯示display:block ;,鼠標移除小圖片時,放大區域和大圖片再次隱藏
其次,需要獲取鼠標在小圖片上的位置和放大區域的位置,來實現可以跟隨鼠標在小圖片上移動來選擇放大的位置mousemove(),要做到這個效果需要:
1.通過事件觸發對象event獲取鼠標位置
event.pageX; event.pageY;
2.獲取放大區域的位置
offset().left; offset().top
3.計算出需要移動的距離
需要移動的距離 = 鼠標在頁面中的X坐標 - 小圖片距離頁面左邊的距離-放大區域寬度的一半
需要移動的距離 = 鼠標在頁面中的Y坐標 - 小圖片距離頁面頂部的距離-放大區域高度的一半

4.同過jquery的css()函數實現移動
最后,實現大圖片對應的移動,這里要注意,大圖片的一定是與放大區域移動的方向相反的
//為小圖片添加hover事件 鼠標移動到小圖片上時,放大區域和大圖片的div需要顯示出來,反之隱藏
$(".img").hover(function(){
$(".bimg").css("display","block");
$("#move").css("display","block");
},function(){
$(".bimg").css("display","none");
$("#move").css("display","none");
});
//需要為小圖片的div添加一個鼠標移動時間
$(".img").mousemove(function(event){
//需要獲取鼠標移動是距離左邊和頂端的距離
var x = event.pageX;
var y = event.pageY;
//需要計算放大區域的需要移動到的位置
var nx = x - $(".img").offset().left-$("#move").width()/2;
var ny = y - $(".img").offset().top-$("#move").height()/2;
//判斷移動后是否已經超出的范圍
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();
}
//設置放大區域的移動
$("#move").css({
left:nx+"px",
top:ny+"px"
});
//設置大圖片的移動 大圖片的移動方向與放大區域正好相反
$(".bimg>img").css({
left:-nx*$("#move").width()/$(".simg").width()+"px",
top:-ny*$("#move").height()/$(".simg").height()+"px"
});關于jquery中怎么實現放大鏡效果就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。