JS中放大镜

效果图

JS中放大镜

<!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>

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

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

 

                                                                   JS中放大镜

上一篇:c# – ServiceStack GetRequestFilterAttributes NullReference


下一篇:Android开发 SeekBar开发记录