首页 > 其他 > 详细

前端放大镜效果

时间:2017-01-06 12:22:07      阅读:153      评论:0      收藏:0      [点我收藏+]
  <!DOCTYPE html>
  <html>
  <head>
  <meta charset="utf-8">
  <title></title>
  <style type="text/css">
  #out{
  width: 1000px;
  overflow: hidden;
  }
  #outer{
  width: 350px;
  height: 350px;
  border: 1px solid red;
  float: left;
  position: relative;
  margin: 0 10px;
  }
  #outer img{
  width:350px;
  height:350px;
  position: absolute;
  }
  #outer p{
  width: 175px;
  height: 175px;
  background: #008884;
  margin: 0 auto;
  position: absolute;
  opacity:0.5;
  filter:alpha(opacity=50);
  }
  #inner2{
  width: 400px;
  height: 400px;
  border: 1px solid red;
  float: left;
  position: relative;
  overflow: hidden;
  display: none;
  }
  #inner2 img{
  width: 800px;
  height: 800px;
  position: absolute;
  }
  </style>
  </head>
  <body>
  <div id="out">
  <div id="outer">
  <img src="images1/q8.jpg" id="minimg">
  <p id="mask"></p>
  </div>
  <div id="inner2">
  <img src="images1/q8.jpg" id="maximg">
  </div>
  </div>
  </body>
  <script type="text/javascript">
  var outer=document.getElementById("outer");
  var inner2=document.getElementById("inner2");
  var minimg=document.getElementById("minimg");
  var maximg=document.getElementById("maximg");
  var mask=document.getElementById("mask");
  outer.onmousemove=function(ev){
  var eve=ev||window.event;
  mask.style.display="block";
  inner2.style.display="block";
  var maskLeft=eve.clientX-outer.offsetLeft-mask.offsetWidth/2;
  var maskTop=eve.clientY-outer.offsetTop-mask.offsetHeight/2;
  var maxLeft=outer.clientWidth-mask.offsetWidth;
  var maxTop=outer.clientHeight-mask.offsetHeight;
  if (maskLeft>=maxLeft){
  maskLeft=maxLeft;
  }else if(maskLeft<=0){
  maskLeft=0;
  }
  if(maskTop>=maxTop){
  maskTop=maxTop;
  }else if(maskTop<=0){
  maskTop=0;
  }
  mask.style.left=maskLeft+"px";
  mask.style.top=maskTop+"px";
  var scale=maximg.clientWidth/minimg.clientWidth;
  maximg.style.left=-maskLeft*scale+"px";
  maximg.style.top=-maskTop*scale+"px";
  }
  outer.onmouseout=function(){
  mask.style.display="none";
  inner2.style.display="none";
  }
  </script>
  </html>

前端放大镜效果

原文:http://www.cnblogs.com/wjcnmq/p/6255757.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!