tranform-origin + transform
达到的效果
首先理解 hover 选择器的作用, 使用它时元素被分解成三个步骤
代码如下
<div class="box">Hover default</div>
.box {
position: relative;
left: 25%;
width: 200px;
height: 60px;
line-height: 60px;
color: #333;
text-align: center;
transition: color .5s;
border-top: 2px solid #e2e2e2;
border-bottom: 2px solid #e2e2e2;
}
.box::before {
content: '';
position: absolute;
left: 0px;
bottom: 0px;
width: 200px;
height: 2px;
background-color: #000;
transition: transform .5s;
transform: scaleX(0);
transform-origin: right 0;
}
.box::after {
content: '';
position: absolute;
right: 0px;
top: -2px;
width: 200px;
height: 2px;
background-color: #000;
transition: transform .5s;
transform: scaleX(0);
transform-origin: left 0;
}
.box:hover {
color: red;
}
.box:hover::before {
transform: scaleX(1);
transform-origin: 0 0;
}
.box:hover::after {
transform: scaleX(1);
transform-origin: right 0;
}参考文档
Last updated