JS 做的滑鼠放大鏡(初級)

來源:互聯網
上載者:User

標籤:

本人初級小白QAQ

這今天我們學習滑鼠的各種事件,我給大家分享一下滑鼠放大鏡的效果。

希望有興趣的朋友可以一塊交流。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>放大鏡效果</title>
<style media="screen">
*{
margin: 0;
padding: 0;
}
#wrap {
width: 400px;
height: 400px;
border: 1px solid black ;
position: absolute;
}
#image {
width: 100%;
height: 100%;
position: absolute;

}
#slider {
width: 150px;
height: 150px;
border: 1px solid gray ;
position: absolute;
/*top: 0;*/
background: rgba(255, 235, 0, 0.3);
display: none;
}
#wrap_max {
width: 700px;
height: 700px;
border: 1px solid gray ;
position: absolute;
left: 400px;
display: none;
overflow: hidden;

}
#image_max {
width: 1000px;
height: 1000px;
/*display: block;*/
}
</style>
</head>
<body>
<div id="wrap">
<img id="image"src="01.jpg" />  // 放置圖片 
<div id="slider">

</div>
</div>
<div id="wrap_max">
<img id="image_max" src="01.jpg" />  //放置和上面一樣的圖片
</div>
</body>
<script type="text/javascript">
var wrap = document.getElementById(‘wrap‘);
var image = document.getElementById(‘image‘);
var slider = document.getElementById(‘slider‘);
var wrapMax = document.getElementById(‘wrap_max‘);
var imageMax = document.getElementById(‘image_max‘);

wrap.onmousemove = function(event){
event = event || window.event;
slider.style.display = ‘block‘; //當滑鼠移入wrap時,slider顯示。
wrapMax.style.display = ‘inline-block‘;
var disX = event.clientX - slider.offsetWidth / 2 ; // slider .offsetWidth/ 2 是讓滑鼠在slider的底部在中間顯示
var disY = event.clientY - slider.offsetHeight / 2; // slider .offsetHeight/2 是讓滑鼠在slider的高在中間顯示
var disMaxX = wrap.offsetWidth - slider.offsetWidth ; // slider在wrap移動的最大橫向距離
var disMaxY = wrap.offsetHeight - slider.offsetHeight ; // slider 在wrap中移動的最大縱向距離
if (disX < 0) {
disX = 0
}else if (disX > disMaxX) {
disX = disMaxX ;
}
if (disY < 0) {
disY = 0
}else if (disY > disMaxY) {
disY = disMaxY ;
}
slider.style.left = disX +‘px‘;
slider.style.top = disY + ‘px‘;
var sealeX = disX / disMaxX ; // slider在wrap x軸 的移動 比例
var sealeY = disY / disMaxY ; // slider 在 wrap y軸的移動 比例
wrapMax.scrollLeft = (imageMax.offsetWidth - wrapMax.offsetWidth) * sealeX ; //wrapMax 在imageMax x 軸中的移動值
wrapMax.scrollTop = (imageMax.offsetHeight - wrapMax.offsetHeight) *sealeY ;

wrap.onmouseleave = function(){
slider.style.display = ‘none‘;
wrapMax.style.display = ‘none‘;
}
}


</script>
</html>

JS 做的滑鼠放大鏡(初級)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.