原生JavaScript實現(xiàn)的簡單放大鏡效果示例
本文實例講述了原生JavaScript實現(xiàn)的簡單放大鏡效果。分享給大家供大家參考,具體如下:
原理: 其實所謂的放大就是準備兩張一樣的圖片,除大小不一樣。鼠標(biāo)移動到不同位置,將會顯示大圖片對應(yīng)的圖片內(nèi)容。
完整代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>放大鏡效果</title>
</head>
<body>
<div id="wrap" style="position: relative;width: 900px;margin: 0 auto;text-align: center;">
<div id="smallImg" style="width: 400px;height: 400px; position: relative;z-index: 1;">
<img src="small.jpg" style="width: 400px;height: 400px;"/>
<span id="filter" style="width: 200px;height: 200px;background-color: blue;opacity: 0.1;position: absolute;top: 0;left: 0; z-index: 2;cursor: move;display: none;">
<span>
</div>
<div id="bigImg" style="width: 400px;height: 400px;overflow: hidden;position: absolute;right: 0px;top: 0;display: none;">
<img src="large.jpg" style="width: 800px;height:800px; position: absolute;left: 0;top: 0;">
</div>
</div>
<script type="text/javascript">
var filter = document.getElementById('filter');
var smallImg = document.getElementById('smallImg');
var bigImg = document.getElementById('bigImg');
var wrap = document.getElementById('wrap');
var largeImgs = bigImg.getElementsByTagName('img')[0];
smallImg.onmouseover = function(){
bigImg.style.display = "inline-block";
filter.style.display = "inline-block";
}
smallImg.onmousemove = function(event){
var event = event || window.event;
var mouseleft = event.clientX - wrap.offsetLeft;
var mousetop = event.clientY - wrap.offsetTop;
var left = mouseleft<smallImg.offsetWidth/4?0:mouseleft>smallImg.offsetWidth*3/4?smallImg.offsetWidth/2:(mouseleft - filter.offsetWidth/2);
var top = mousetop<smallImg.offsetHeight/4?0:mousetop>smallImg.offsetHeight*3/4?smallImg.offsetHeight/2:(mousetop - filter.offsetWidth/2);
filter.style.left = left + "px";
filter.style.top = top +"px";
largeImgs.style.left = "-" + left*bigImg.offsetWidth/smallImg.offsetWidth + "px";
largeImgs.style.top = "-" + top*bigImg.offsetHeight/smallImg.offsetHeight + "px";
}
smallImg.onmouseout = function(){
bigImg.style.display = "none";
filter.style.display = "none";
}
</script>
</body>
</html>
運行效果:

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript圖片操作技巧大全》、《JavaScript圖形繪制技巧總結(jié)》、《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
BootStrap Progressbar 實現(xiàn)大文件上傳的進度條的實例代碼
這篇文章主要介紹了BootStrap Progressbar 實現(xiàn)大文件上傳的進度條的實例代碼的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06
JavaScript常見事件處理程序?qū)嵗偨Y(jié)
這篇文章主要介紹了JavaScript常見事件處理程序,結(jié)合實例形式總結(jié)分析了javascript HTML事件、DOM事件、IE事件等相關(guān)處理程序與操作技巧,需要的朋友可以參考下2019-01-01
JavaScript.The.Good.Parts閱讀筆記(二)作用域&閉包&減緩全局空間污染
塊級作用域: 大多數(shù)使用c語言語法的語言都有塊級作用域,而JavaScript沒有塊級作用域。2010-11-11
javascript實現(xiàn)unicode和字符的互相轉(zhuǎn)換
javascript實現(xiàn)unicode和字符的互相轉(zhuǎn)換...2007-07-07
JS如何對Iframe內(nèi)外頁面進行操作總結(jié)
iframe標(biāo)簽是一個內(nèi)聯(lián)框架,即用來在當(dāng)前HTML頁面中嵌入另一個文檔的,且所有主流瀏覽器都支持iframe標(biāo)簽,這篇文章主要給大家介紹了關(guān)于JS如何對Iframe內(nèi)外頁面進行操作的相關(guān)資料,需要的朋友可以參考下2021-10-10

