悬停时缩小半透明覆盖
Shrinking semi-transparent overlay on hover
我想用 link 中存在的 CSS3 创建这种效果。
在这个页面中,有四个圆形的图片,效果很漂亮很高级。效果是 半透明叠加在图像上方 moves/shrinks 当图像悬停时 。最初,图像是透明的(没有覆盖),当悬停过渡完成时,图像获得半透明覆盖。
如果您正在寻找将鼠标悬停在带有图像的圆圈上时显示的效果,那么可以使用 box-shadow
和如下代码段所示的伪元素来实现。
伪元素有一个box-shadow
,其展开半径等于容器的大小,以便在元素上产生半透明覆盖。伪元素的初始大小与容器的大小相同,由于这个和父元素上的 overflow: hidden
,阴影是不可见的。当悬停在图像上时,伪元素的高度和宽度慢慢过渡到 0px,这使得框阴影变得可见(因此最终显示透明覆盖)。
translateX(-50%) translateY(-50%)
变换效果用于将伪元素定位在容器元素的中心点。
div {
position: relative;
height: 200px;
width: 200px;
border-radius: 50%;
background: url(http://lorempixel.com/200/200/nature/1);
overflow: hidden;
}
div:after {
position: absolute;
content: '';
top: 50%;
left: 50%;
height: 100%;
width: 100%;
border-radius: 50%;
box-shadow: 0px 0px 0px 200px rgba(0, 0, 0, 0.5);
transform: translateX(-50%) translateY(-50%);
transition: all 1s;
}
div:hover:after {
height: 0%;
width: 0%;
}
<div class='shadow-circle'></div>
我想用 link 中存在的 CSS3 创建这种效果。
在这个页面中,有四个圆形的图片,效果很漂亮很高级。效果是 半透明叠加在图像上方 moves/shrinks 当图像悬停时 。最初,图像是透明的(没有覆盖),当悬停过渡完成时,图像获得半透明覆盖。
如果您正在寻找将鼠标悬停在带有图像的圆圈上时显示的效果,那么可以使用 box-shadow
和如下代码段所示的伪元素来实现。
伪元素有一个box-shadow
,其展开半径等于容器的大小,以便在元素上产生半透明覆盖。伪元素的初始大小与容器的大小相同,由于这个和父元素上的 overflow: hidden
,阴影是不可见的。当悬停在图像上时,伪元素的高度和宽度慢慢过渡到 0px,这使得框阴影变得可见(因此最终显示透明覆盖)。
translateX(-50%) translateY(-50%)
变换效果用于将伪元素定位在容器元素的中心点。
div {
position: relative;
height: 200px;
width: 200px;
border-radius: 50%;
background: url(http://lorempixel.com/200/200/nature/1);
overflow: hidden;
}
div:after {
position: absolute;
content: '';
top: 50%;
left: 50%;
height: 100%;
width: 100%;
border-radius: 50%;
box-shadow: 0px 0px 0px 200px rgba(0, 0, 0, 0.5);
transform: translateX(-50%) translateY(-50%);
transition: all 1s;
}
div:hover:after {
height: 0%;
width: 0%;
}
<div class='shadow-circle'></div>