前言: 对于设了渐变颜色的background,css会当做背景图片处理,这时直接设过渡transition会没有效果;
整理了两种用过的,给渐变背景加过渡的方法:
方法一:利用background-position,通过改变背景位置实现过渡
<div class="btn"></div>
.btn{
background: linear-gradient(72deg,rgba(5,120,255,1) 0%,rgba(0,177,255,1) 50%,rgba(0,177,255,1) 100%);
background-size: 200%;
transition: background-position .3s;
&:hover{
background-position: 100% 0;
}
}
方法二:写两层按钮,通过改变透明度opacity实现过渡(利用伪类before、after也可)
<div class="btn_save">
搜索
<div class="btn_save_hover">搜索</div>
</div>
.btn_save{
text-align: center;
line-height: 32px;
background: linear-gradient(70deg, #0578ff 0%, #00afff 100%);
color: #fff;
transition: all .3s;
position: relative;
}
.btn_save_hover{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(90deg, #05C1FF 0%, #05C1FF 100%);
opacity: 0;
transition: all .3s;
}
.btn_save:hover .btn_save_hover{
opacity: 1;
}