CSS中放大镜怎么写放大镜是一个非常实用的功能,可以让用户更加方便地查看细节,尤其是在网上购物时。在CSS中,我们可以使用一些技巧来实现放大镜效果。下面我来为大家介绍一下如何写CSS中的放大镜。首先,
.img-container { position: relative; } .zoom-container { position: absolute; top: 0; left: 100%; width: 200px; height: 200px; border: 1px solid #ccc; border-radius: 50%; overflow: hidden; display: none; }
let imgContainer = document.querySelector('.img-container'); let zoomContainer = document.querySelector('.zoom-container'); let zoomImg = zoomContainer.querySelector('img'); let imgSrc = imgContainer.querySelector('img').getAttribute('src'); let imgWidth = imgContainer.querySelector('img').offsetWidth; let imgHeight = imgContainer.querySelector('img').offsetHeight; // 设置放大镜内部的图片 zoomImg.src = imgSrc; // 为图片添加hover事件 imgContainer.addEventListener('mouseover', () => { zoomContainer.style.display = 'block'; }); imgContainer.addEventListener('mouseout', () => { zoomContainer.style.display = 'none'; }); imgContainer.addEventListener('mousemove', (e) => { // 计算鼠标在图片中的位置 let mouseX = e.clientX - imgContainer.offsetLeft; let mouseY = e.clientY - imgContainer.offsetTop; // 计算放大镜内部图片的位置 let imgPosX = -mouseX * (2 * imgWidth / zoomContainer.offsetWidth); let imgPosY = -mouseY * (2 * imgHeight / zoomContainer.offsetHeight); // 设置放大镜内部图片的位置和缩放比例 zoomImg.style.transform = `translate(${imgPosX}px, ${imgPosY}px) scale(2)`; });
粉丝
0
关注
0
收藏
0