我的标签上的CSS转换不是淡入淡出,它就像没有转换一样!我也尝试使用transition: background 300ms ease-in-out;
,但仍然没有运气
CSS:
.FeatureRow a{
padding: 10px;
display: block;
width: 260px;
height: auto;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-webkit-box-shadow: 0px 4px 8px #f5f5f5;
-moz-box-shadow: 0px 4px 8px #f5f5f5;
box-shadow: 0px 4px 8px #f5f5f5;
background-image: -moz-linear-gradient(top,#fbfbfb,#ffffff);
background-image: -webkit-gradient(linear,0 0,0 100%,from(#fbfbfb),to(#ffffff));
background-image: -webkit-linear-gradient(top,#fbfbfb,#ffffff);
background-image: -o-linear-gradient(top,#fbfbfb,#ffffff);
background-image: linear-gradient(to bottom,#fbfbfb,#ffffff);
background-repeat: repeat-x;
transition: all 300ms ease-in-out;
-webkit-transition: all 300ms ease-in-out;
-moz-transition: all 300ms ease-in-out;
-ms-transition: all 300ms ease-in-out;
-o-transition: all 300ms ease-in-out;
}
.FeatureRow a:hover{
background-image: -moz-linear-gradient(top,#C00,#C0F);
background-image: -webkit-gradient(linear,0 0,0 100%,from(#C00),to(#C0F));
background-image: -webkit-linear-gradient(top,#C00,#C0F);
background-image: -o-linear-gradient(top,#C00,#C0F);
background-image: linear-gradient(to bottom,#C00,#C0F);
}
答案 0 :(得分:8)
正如Adrift所说,这不受支持;你必须模拟它。
这是CSS
.FeatureRow {
padding: 10px;
display: block;
position: relative;
width: 260px;
height: 70px;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
background-image: linear-gradient(0deg,white,gray);
}
.FeatureRow:after {
content: '';
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background-image: linear-gradient(0deg,red,magenta);
opacity: 0;
transition: all 3s ease-in-out;
}
.FeatureRow:hover:after {
opacity: 1;
}
我们用一个伪元素覆盖你的div。每个都有一个渐变。伪元素的不透明度设置为0;当你悬停它时,你将不透明度改为1;这个属性可以转换。
答案 1 :(得分:3)
目前,任何浏览器都不会使用动画(或过渡)的渐变supported。查看this list模块中的Transitions以获取所有当前可动画属性的列表
答案 2 :(得分:2)
如其他答案中所述,无法为渐变设置动画。但是,可以为背景颜色设置动画。了解这一点后,您可以在背景颜色上叠加透明渐变,这样您就可以为渐变中的一种颜色设置动画。
要执行此操作,请选择要设置动画的颜色,将其设置为背景颜色,然后将 rgba(0,0,0,0)
(透明)放在其位置
然后您只需要:悬停或使用javascript 将背景颜色更改为您想要的值
这仅适用于过渡渐变的一种颜色。但我认为转换渐变仍然是一个不错的选择
.squareTile {
background: radial-gradient(#203244eb, rgba(0,0,0,0), #203244eb);
background-color: #3596ff;
border-radius: 10px;
width: 100px;
height: 100px;
border: 1px solid black;
cursor: pointer;
transition: 1s;
}
.squareTile:hover {
background-color: #77c577;
}

<div class="squareTile">
</div>
&#13;
答案 3 :(得分:0)
可以对背景渐变进行动画处理,并且目前有一个很好的工具可以让您使用此功能:
https://www.gradient-animator.com/
示例输出:
.css-selector {
background: linear-gradient(270deg, #8ccebd, #146e57);
background-size: 400% 400%;
animation: AnimationName 5s ease infinite;
}
@keyframes AnimationName {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}
}