本篇文章為大家展示了利用javascript實(shí)現(xiàn)一個(gè)放大鏡功能,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

具體內(nèi)容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {
margin: 0px;
padding: 0px;
}
#min {
width: 350px;
height: 350px;
border: 1px solid #ccc;
position: absolute;
left: 50px;
top: 50px;
}
#min img {
width: 350px;
height: 350px;
}
#max {
width: 500px;
height: 500px;
position: absolute;
left: 500px;
top: 50px;
border: 1px solid #ccc;
overflow: hidden;
display: none;
}
#max img {
position: absolute;
left: 0;
top: 0;
}
#mask {
width: 200px;
height: 200px;
background: rgba(255, 0, 0, 0.5);
position: absolute;
left: 0px;
top: 0px;
cursor: pointer;
display: none;
}
</style>
</head>
<body>
<div id="min">
<img src="img/min.jpg" alt="" />
<div id="mask"></div>
</div>
<div id="max">
<img src="img/max.jpg" id="maxImg" />
</div>
<script type="text/javascript">
// 1.鼠標(biāo)經(jīng)過小盒子,遮罩層出現(xiàn),大盒子出現(xiàn)
// 2.遮罩層跟隨鼠標(biāo)移動
// 3.遮罩層移動,大盒子里的圖片反方向移動
var oMin = document.getElementById('min');
var oMax = document.getElementById('max');
var oMask = document.getElementById('mask');
var oMaxImg = document.getElementById('maxImg');
oMin.onmousemove = function(e) {
// 1.鼠標(biāo)經(jīng)過小盒子,遮罩層和大盒子出現(xiàn)
oMask.style.display = 'block';
oMax.style.display = 'block';
// 2.拿到鼠標(biāo)在小盒子上的坐標(biāo)
var minX = e.clientX - oMin.offsetLeft;
var minY = e.clientY - oMin.offsetTop;
// 3.將鼠標(biāo)放置在遮罩層的中間
minX = minX - oMask.offsetWidth / 2;
minY = minY - oMask.offsetHeight / 2;
// 4.遮罩層可以移動的較大距離
var maxWidth = oMin.offsetWidth - oMask.offsetWidth;
var maxHeight = oMin.offsetHeight - oMask.offsetHeight;
// 限定遮罩層的位置
if (minX > maxWidth) {
minX = maxWidth;
} else if (minX <= 0) {
minX = 0;
}
if (minY > maxHeight) {
minY = maxHeight;
} else if (minY <= 0) {
minY = 0;
}
// 設(shè)定遮罩層的偏移
oMask.style.left = minX + 'px';
oMask.style.top = minY + 'px';
// 大圖片移動的距離=遮罩層移動的距離/遮罩層可以移動的較大距離*大圖片較大移動距離
var ratioX = minX / maxWidth;
var ratioY = minY / maxHeight;
// 計(jì)算出大圖片的移動距離
oMaxImg.style.left = -ratioX * (oMaxImg.offsetWidth - oMax.offsetWidth) + 'px';
oMaxImg.style.top = -ratioY * (oMaxImg.offsetHeight - oMax.offsetHeight) + 'px';
};
// 鼠標(biāo)移開,遮罩層和大盒子消失
oMin.onmouseout = function() {
oMask.style.display = 'none';
oMax.style.display = 'none';
}
</script>
</body>
</html>
新聞名稱:利用javascript實(shí)現(xiàn)一個(gè)放大鏡功能-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://chinadenli.net/article0/diigio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、網(wǎng)站維護(hù)、網(wǎng)站營銷、網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容