ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JS中放大镜

2019-10-27 09:38:58  阅读:208  来源: 互联网

标签:style bg 放大镜 JS mm im sm var


效果图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>辣么帅的我</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			#bobo{
				width: 350px ;
				height: 350px;
				position: relative;
				margin: 100px;
				border:1px solid #777777 ;
			}
			#small{
				position: relative;
			}
			#mm{
				width: 175px;
				height: 175px;
				background: rgba(255, 255, 0, 0.4);
                position: absolute;
                top: 0px;
                left: 0px;
                cursor: move;
                display: none;
			}
			#big{
				width: 400px;
                height: 400px;
                position: absolute;
                top: 0;
                left: 360px;
                border: 1px solid #ccc;
                overflow: hidden;
                display: none;
			}
		</style>
	</head>
	<body>
		<div id="bobo">
			<div id="small">
				<img src="Img/xiao.jpg" style="width: 350px;" id="x"/>
				<div id="mm"></div>
			</div>
			<div id="big">
				<img src="Img/da.jpg" style="width: 800px;" id="d"/>
			</div>
		</div>
		<script src="../com.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			var bobo=myObj.getId("bobo");
            var sm=myObj.getId("small");
            var sm_im=myObj.getId("x");
            var sm_mm=myObj.getId("mm");
            var bg=myObj.getId("big");
            var bg_im=myObj.getId("d");
            
            bobo.οnmοuseοver=function(){
            	sm_mm.style.display="block";
            	bg.style.display="block";
            };
            bobo.οnmοuseοut=function(){
            	sm_mm.style.display="none";
            	bg.style.display="none";
            };
            
            sm.οnmοusemοve=function(e){
//          	100是盒子的marfin值
            	var sm_mm_x=myObj.getEvent(e).clientX-sm_mm.offsetWidth/2-100;
            	var sm_mm_y=myObj.getEvent(e).clientY-sm_mm.offsetHeight/2-100;
            	
            	//175=sm.offsetwidth-sm_mm.offsewidth
            	sm_mm_x=sm_mm_x<0?0:sm_mm_x;//x轴的最小值
            	sm_mm_y=sm_mm_y<0?0:sm_mm_y;//Y轴的最小值
            	sm_mm_x=sm_mm_x>175?175:sm_mm_x;//x轴的最大值
            	sm_mm_y=sm_mm_y>175?175:sm_mm_y;//y轴的最大值
            	
            	//将坐标赋值给遮挡层
                sm_mm.style.left=sm_mm_x+"px";
                sm_mm.style.top=sm_mm_y+"px";
                
                //遮挡层的移动距离/大图的移动距离=遮挡层的最大移动距离/大图的最大移动距离
                //大图的移动距离=遮挡层的移动距离*大图的最大移动距离/遮挡层的最大移动距离
                
//              400=大图的最大移动距离=bg_im.offsetWidth-bg.offsetWidth;
                
                var bg_im_xproportion=sm_mm_x*400/175;
                var bg_im_yproportion=sm_mm_y*400/175;
                
                //将坐标赋值给大图
                bg_im.style.marginLeft=-bg_im_xproportion+"px";
                bg_im.style.marginTop=-bg_im_yproportion+"px";
                
            };
		</script>
	</body>
</html>

坚持每周更新,向全栈大佬进发

这是我的公众号,喜欢的朋友可以关注一下,每周更新,篇篇干货

 

                                                                   

标签:style,bg,放大镜,JS,mm,im,sm,var
来源: https://blog.csdn.net/hohocj/article/details/102763827

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有