使用CSS Transitions实现圆形悬停效果的示例代码

2020-04-27 07:39:35易采站长站整理

width: 100%;
height: 100%;
border-radius: 50%;
position: relative;
box-shadow: 0 1px 2px rgba(0,0,0,0.1);
cursor: default;
}

".ch-info-wrap"将有透视属性,我们还将添加阴影的过渡:


.ch-info-wrap{
position: absolute;
width: 180px;
height: 180px;
border-radius: 50%;
perspective: 800px;
transition: all 0.4s ease-in-out;
top: 20px;
left: 20px;
background: #f9f9f9 url(../images/bg.jpg);
box-shadow:
0 0 0 20px rgba(255,255,255,0.2),
inset 0 0 3px rgba(115,114, 23, 0.8);

}

".ch-info"将需要preserve-3d值用于变换样式,我们将给它一个过渡,因为这是我们将在3d中旋转的元素:


.ch-info{
position: absolute;
width: 180px;
height: 180px;
border-radius: 50%;
transition: all 0.4s ease-in-out;
transform-style: preserve-3d;
}

正面和背面将具有以下常见样式:


.ch-info > div {
display: block;
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
background-position: center center;
backface-visibility: hidden;
}

背面将旋转,以便我们开始不会看到它:


.ch-info .ch-info-back {
transform: rotate3d(0,1,0,180deg);
background: #000;
}

再次,背景图片:


.ch-img-1 {
background-image: url(../images/10.jpg);
}

.ch-img-2 {
background-image: url(../images/11.jpg);
}

.ch-img-3 {
background-image: url(../images/12.jpg);
}

…和文本元素:


.ch-info h3 {
color: #fff;
text-transform: uppercase;
letter-spacing: 2px;
font-size: 14px;
margin: 0 15px;
padding: 40px 0 0 0;
height: 90px;
font-family: 'Open Sans', Arial, sans-serif;
text-shadow:
0 0 1px #fff,
0 1px 2px rgba(0,0,0,0.3);
}

.ch-info p {
color: #fff;
padding: 10px 5px;
font-style: italic;
margin: 0 30px;
font-size: 12px;
border-top: 1px solid rgba(255,255,255,0.5);
}

.ch-info p a {
display: block;
color: rgba(255,255,255,0.7);
font-style: normal;
font-weight: 700;
text-transform: uppercase;
font-size: 9px;
letter-spacing: 1px;
padding-top: 4px;
font-family: 'Open Sans', Arial, sans-serif;
}

.ch-info p a:hover {
color: rgba(255,242,34, 0.8);
}

在悬停时,我们将更改".ch-info-wrap"的阴影并旋转".ch-info",以便我们看到背面:


.ch-item:hover .ch-info-wrap {
box-shadow:
0 0 0 0 rgba(255,255,255,0.8),