淘先锋技术网

首页 1 2 3 4 5 6 7

CSS 样式放大镜是一种常用的交互特效,可以使得元素的细节之处更加清晰,提高用户体验。下面我们来学习一下如何实现该特效。

/* HTML 部分 */
<div class="zoom">
<img src="xxx.jpg" alt="" class="zoom-img">
<div class="zoom-view"></div>
</div>
/* CSS 部分 */
.zoom {
position: relative;
overflow: hidden;
width: 300px;
height: 300px;
}
.zoom .zoom-view {
position: absolute;
top: 0;
left: 0;
width: 150px;
height: 150px;
background: url(xxx.jpg) no-repeat;
background-size: 600px 600px;
border: 1px solid #ccc;
box-shadow: 0 0 10px rgba(0, 0, 0, .3);
transform: scale(2);
transform-origin: top left;
opacity: 0;
pointer-events: none;
transition: all .3s ease;
}
.zoom:hover .zoom-view {
opacity: 1;
pointer-events: auto;
transform: scale(1);
cursor: crosshair;
}
.zoom .zoom-img {
display: block;
max-width: 100%;
height: auto;
}

在 HTML 部分,我们创建了一个 div 容器,并在其中加入一张图片以及另一个用于放大的 div 容器 zoom-view。其中 zoom-view 的背景颜色设置为需要放大的图片,重复不应用,大小设置为原图片的尺寸,然后缩放两倍,并且原点在左上角。 zoom-view 容器的初始透明度设置为 0,鼠标指针不可交互。在 CSS 部分,我们设置了 zoom 容器的宽高、超出部分隐藏。zoom-view 容器的位置设置为绝对位置,左上角对齐,并设置了 1 像素宽的边框和 10 像素的阴影。 当鼠标指针在 zoom 容器上时, zoom-view 容器的透明度设置为 1,鼠标指针可以交互,缩放大小变为 1,鼠标指针变为一个交叉形的鼠标光标。这样,我们就实现了一个简单的 CSS 样式放大镜效果。