Css过渡悬停渐变[重复]

Posted

技术标签:

【中文标题】Css过渡悬停渐变[重复]【英文标题】:Css Transition hover gradient [duplicate] 【发布时间】:2014-12-10 11:58:40 【问题描述】:

我有一个关于过渡效果的问题。我创建了这个fiddle

我想为悬停添加过渡效果。但它不起作用。任何人都可以在这里帮助我吗?

.h_grid_2 .gradient_c_grd_2 
    position:absolute;
    width:384px;
    height:200px;
    z-index:1;
    background: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
    background: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
    background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
    -webkit-transition: 1s all;
    transition: 1s all;


.h_grid_2:hover .gradient_c_grd_2 
    position:absolute;
    width:384px;
    height:200px;
    z-index:1;
    background: -moz-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), rgba(255 255, 255, 0.2));
    background: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0, 0), rgba(255, 255, 255, 0.2));
    background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.2));
    -webkit-transition: 1s all;
    transition: 1s all;

【问题讨论】:

CSS 过渡还不支持背景图像(CSS 渐变也被视为图像)。 【参考方案1】:

结帐我的方式:http://jsfiddle.net/gqLgu7jw/1/

这个想法是添加另一个 div (.gradient_c_grd_3) 并使用如下样式:

.h_grid_2:hover .gradient_c_grd_3
    opacity: 1;


.h_grid_2:hover .gradient_c_grd_2 
   opacity: 0;

【讨论】:

这是正确的解决方案。谢谢【参考方案2】:

目前这是不可能的! CSS 过渡还不支持背景图片。

但是你可以使用背景大小和背景位置:

引自Animating CSS3 Gradients

... 因为 CSS3 渐变不是真正的属性,但实际上是 由浏览器创建的图像,它们不在动画列表中 特性。但这并不意味着您不能为渐变设置动画。

渐变,就像标准图像一样,受制于某些 可设置动画的与背景相关的属性。这些包括 背景尺寸和背景位置。

对于一些基本的code-sn-ps和包含这个想法的例子,我建议你看看上面的网站。

【讨论】:

以上是关于Css过渡悬停渐变[重复]的主要内容,如果未能解决你的问题,请参考以下文章

填充颜​​色的CSS过渡在悬停时不起作用[重复]

黑白主题直到悬停[重复]

CSS过渡不反向工作[重复]

背景图像过渡在CSS中不起作用[重复]

CSS3 过渡不适用于显示属性 [重复]

CSS背景渐变图片问题