css实现鼠标移动呈放大镜

CSS实现鼠标移动呈放大镜是一种比较小众的效果,但在特定的场景下可以起到非常好的视觉效果,比如用于产品图片展示。下面我们来介绍一下实现的方法

/*定义放大镜的样式*/
.lens {
  position: absolute;
  border: 2px solid #ddd;
  width: 100px;
  height: 100px;
  pointer-events: none; /*禁止鼠标事件*/
  opacity: 0; /*不显示*/
}

/*定义放大容器的样式*/
.img-zoom-container {
  position: relative;
}

/*鼠标移入时,显示放大镜*/
.img-zoom-container:hover .lens {
  opacity: 1;
}

/*定义放大镜的背景图片*/
.lens:before {
  content: "";
  display: block;
  position: absolute;
  background: url(../images/product-big.jpg) no-repeat;
  width: 300px; /*放大倍数*/
  height: 300px; /*放大倍数*/
  top: -50px; /*放大位置*/
  left: -50px; /*放大位置*/
  z-index: -1;
  transform: scale(0.3); /*根据放大倍数设置*/
  transform-origin: 0 0; /*设置放大点*/
}

/*鼠标移动时,实时更新放大镜的位置和背景图片的位置*/
.img-zoom-container:hover .lens {
  background-position: -event.offsetX*3 - 50px -event.offsetY*3 - 50px;
  /*根据鼠标x,y坐标计算放大镜和背景图片的位置*/
  left: event.offsetX -50px;
  /*根据鼠标x坐标计算放大镜的左侧位置*/
  top: event.offsetY -50px;
  /*根据鼠标y坐标计算放大镜的顶部位置*/
}

css实现鼠标移动呈放大镜

以上就是实现鼠标移动呈放大镜的全部代码,需要注意的是,为了达到适当的效果,我们需要设置放大倍数和放大点,具体的数值可以根据实际情况进行调整。同时,在CSS中我们还使用了transform属性对放大背景图片进行了缩放和设置放大点的功能

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效