java语言

JavaScript简单实现放大镜效果代码

时间:2024-09-24 21:58:56 java语言 我要投稿
  • 相关推荐

JavaScript简单实现放大镜效果代码

  导语:JavaScript简单实现放大镜效果代码是有百分网小编给大家提供的,大家可以参考阅读,更多详情请关注应届毕业生考试网。

  <html>

  <head>

  <meta charset="UTF-8">

  <title></title>

  <style type="text/css">

  * {

  margin: 0;

  padding: 0;

  }

  img{

  vertical-align: top;

  }

  .fdj {

  width: 350px;

  height: 350px;

  position: relative;

  margin: 100px auto;

  border: 1px solid gainsboro;

  }

  .small {

  position: relative;

  }

  .small img {

  width: 350px;

  }

  .mask {

  width: 100px;

  height: 100px;

  background: rgba(255, 255, 0, 0.4);

  position: absolute;

  left: 0;

  top: 0;

  cursor: move;

  display: none;

  }

  .big {

  position: absolute;

  top: 0;

  left: 360px;

  width: 500px;

  height: 500px;

  border: 1px solid gainsboro;

  overflow: hidden;

  display: none;

  }

  .big img{

  position: absolute;

  left: 0;

  top: 0;

  }

  </style>

  </head>

  <body>

  <p class="fdj">

  <p class="small">

  <img src="http://cdn.attach.qdfuns.com/notes/pics/201702/08/162503mw0fawb5b02va22i.jpg" />

  <p class="mask"></p>

  </p>

  <p class="big">

  <img src="http://cdn.attach.qdfuns.com/notes/pics/201702/08/162503mw0fawb5b02va22i.jpg" />

  </p>

  </p>

  </body>

  <script type="text/javascript">

  var fdj = document.querySelector('.fdj') // 获得最大的盒子

  var small = document.querySelector('.small'); //获取小图片盒子

  var big = document.querySelector('.big'); //获取大图片盒子

  var bigs = big.children[0] //大图片

  var smalls = small.children[0] //小图片

  var mask = small.children[1]; //遮罩

  //鼠标移入小图片盒子

  small.onmouseover = function() {

  //鼠标移入图片盒子将遮罩与大图片显示

  mask.style.display = 'block';

  big.style.display = ' block';

  };

  //鼠标移出小图片盒子

  small.onmouseout = function() {

  //鼠标移出小图片盒子将遮罩与大图片隐藏

  mask.style.display = 'none';

  big.style.display = 'none';

  };

  var x=0;

  var y=0;

  //鼠标在小图片上移动时

  small.onmousemove = function(ev) {

  var ev = event || window.event;

  //让鼠标在遮罩正中

  //鼠标X坐标与Y坐标

  x = ev.clientX -this.offsetParent.offsetLeft- mask.offsetWidth / 2 ;

  y = ev.clientY -this.offsetParent.offsetTop- mask.offsetHeight / 2 ;

  //将遮罩限制在小图片盒子中

  if (x<0) {

  x=0;

  }else if(x>small.offsetWidth-mask.offsetWidth){

  x = small.offsetWidth-mask.offsetWidth;

  }

  if(y<0){

  y=0;

  }else if(y>small.offsetHeight-mask.offsetHeight){

  y= small.offsetHeight-mask.offsetHeight

  }

  mask.style.left = x + 'px';

  mask.style.top = y + 'px';

  //大图与小图的比例

  /*var scalX = bigs.offsetWidth/small.offsetWidth;

  var scalY = bigs.offsetHeight/small.offsetHeight;*/

  var scalX = x/(small.offsetWidth-mask.offsetWidth);

  var scalY = y/(small.offsetHeight-mask.offsetHeight);

  bigs.style.left = -(x*scalX)+'px';

  bigs.style.top = -(y*scalY)+'px';

  };

  </script>

  </html>

【JavaScript简单实现放大镜效果代码】相关文章:

如何实现JavaScript的DIV块来回滚动效果03-24

如何使用javascript实现瀑布流及效果加载12-09

php动态生成JavaScript代码03-30

JavaScript重置表单的实现03-23

CSS如何实现中英文双语菜单效果代码12-04

纯css实现蓝色圆角效果水平导航菜单代码12-04

JavaScript代码的5个书写坏习惯03-30

JavaScript如何实现JSON.stringify12-09

使用python实现Linux异步epoll的代码03-01