zoukankan      html  css  js  c++  java
  • 放大镜效果

    用原生js,实现放大镜效果

    css

    	<style>
    		*{
    			margin:0;
    			padding:0;
    		}
    		#box{
    			350px;
    			height:350px;
    			border:1px solid #000;
    			margin:100px;
    			position:relative;
    		}
    		#big{
    			400px;
    			height:400px;
    			border:1px solid #000;
    			position:absolute;
    			top : 0;
    			left : 360px;
    			overflow:hidden;
    			display:none;
    		}
    		#mask{
    			175px;
    			height:175px;
    			background:pink;
    			opacity:0.3;
    			position:absolute;
    			top:0;
    			left:0;
    			cursor:move;
    			display:none
    		}
    		#small{
    			position:relative;
    		}
    		#bigImg{
    			position:absolute;
    			left:0;
    			top:0;
    		}
    	</style>
    

      html

    <div id="box">
    	<div id="small">
    		<img src="images/iphone.jpg" alt="" id="smallImg"/>
    		<div id="mask"></div>
    	</div>
    	<div id="big">
    		<img src="images/iphone_big.jpg" alt="" id="bigImg"/>
    	</div>
    </div>
    

      js

    <script>
    	var small = document.getElementById("small");
    	var smallImg = document.getElementById("smallImg");
    	var mask = document.getElementById("mask");
    	var big = document.getElementById("big");
    	var bigImg = document.getElementById("bigImg");
    	var box = document.getElementById("box");
    	small.onmouseover = function(){
    		mask.style.display = "block";
    		big.style.display = "block";
    	}
    	small.onmouseout = function(){
    		mask.style.display = "none";
    		big.style.display = "none";
    	}
    	small.onmousemove = function(e){
    		var e = e || event;
    		var x = e.pageX - box.offsetLeft - mask.offsetWidth / 2 ;
    		var y = e.pageY - box.offsetTop - mask.offsetHeight / 2 ;	
    		var maxL = box.offsetWidth - mask.offsetWidth;
    		var maxT = box.offsetHeight - mask.offsetHeight;
    		x = x < 0 ? 0 : x > maxL ? maxL : x;
    		y = y < 0 ? 0 : y > maxT ? maxT : y;
    		mask.style.left = x + "px";
    		mask.style.top = y + "px";
    		
    		var bigL = x * (bigImg.offsetWidth - big.offsetWidth) / (box.offsetWidth - mask.offsetWidth);
    		var bigT = y * (bigImg.offsetHeight - big.offsetHeight) / (box.offsetHeight - mask.offsetHeight);
    		bigImg.style.left = - bigL + "px";
    		bigImg.style.top = - bigT + "px";
    	}
    </script>
    

      

  • 相关阅读:
    【转载】关于sql的执行计划(推荐详细) 天高地厚
    填充因子 天高地厚
    【转载】基于Windows下的Web性能测试和压力测试 天高地厚
    [转]SQL Server 2008存储结构之GAM、SGAM 天高地厚
    用sp_change_users_login消除Sql Server的孤立用户
    定义类成员
    个人JS脚本验证大全[转]
    网页居中
    转 优先队列 的使用
    java BigInteger
  • 原文地址:https://www.cnblogs.com/xiaoyaolang/p/11906889.html
Copyright © 2011-2022 走看看