本文主要和大家介绍了原生javascript实现的简单放大镜效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下,希望能帮助到大家。
原理: 其实所谓的放大就是准备两张一样的图片,除大小不一样。鼠标移动到不同位置,将会显示大图片对应的图片内容。
完整代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>放大镜效果</title>
</head>
<body>
<p id="wrap" style="position: relative;width: 900px;margin: 0 auto;text-align: center;">
<p 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>
</p>
<p 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;">
</p>
</p>
<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>
运行效果:
相关推荐:
js实现图片放大镜插件实例详解
jquery实现放大镜简单方法
javascript仿淘宝实现放大镜效果的实例
以上就是javascript实现简单放大镜效果代码的详细内容。