透明背景div上的背景颜色过渡效果?

Posted

技术标签:

【中文标题】透明背景div上的背景颜色过渡效果?【英文标题】:Background-color transition effect on transparent background div? 【发布时间】:2013-10-20 17:45:00 【问题描述】:

我有一个显示返回顶部箭头图像(精灵)的 div。我正在使用 css 更改背景位置以实现颜色更改。

如何在不使用背景位置转换的情况下转换箭头颜色?我正在寻找背景色过渡效果,但我不能使用它,因为我希望 div 的背景是透明的。希望我的问题不会太混乱。

http://jsfiddle.net/9stkQ/

css:

.top
    background:url(../images/top.png) -10px -10px;
    background-repeat:no-repeat;
    width:20px;
    height:20px;
    display:block;
    margin:0 auto;
    cursor:pointer;


.top:hover
    background:url(../images/top.png) -10px 30px;

【问题讨论】:

我们需要查看带有链接图像的有效 JSfiddle 以了解您想要实现的目标。 这个够清楚了吗? jsfiddle.net/9stkQ 【参考方案1】:

您可以通过这种方式在同一图像的 2 个精灵之间进行转换:

.top
    background:url(http://placekitten.com/200/300) 0px 0px;
    background-repeat:no-repeat;
    width:100px;
    height:100px;
    display:block;
    margin:0 auto;
    cursor:pointer;
    position: relative


.top:after 
    content: '';
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    background:url(http://placekitten.com/200/300) 100px 0px;
    opacity: 0;
    -webkit-transition: opacity 1s;
    transition: opacity 2s;


.top:hover:after 
    opacity: 1;

由于您在伪元素中显示第二个精灵,因此过渡不会“移动”

fiddle

【讨论】:

【参考方案2】:

另一种方法是不使用图像,而是使用伪元素。

JSFiddle Example

.top 
    position:relative;
    width:0;


.top:before 
    position:absolute;
    border:20px solid transparent;
    border-bottom:20px solid red;
    content:"";


.top:hover:before 
    border-bottom:20px solid green;

【讨论】:

以上是关于透明背景div上的背景颜色过渡效果?的主要内容,如果未能解决你的问题,请参考以下文章

div背景颜色怎样渐变 css实现div层背景颜色渐变代码

如何将元素的背景颜色与 2 种半透明元素背景颜色匹配

CSS 为 div 的背景颜色而不是内容添加不透明度

jquery如何使css设定好背景颜色的div去掉背景颜色?

背景颜色和背景图像 CSS3 之间的过渡

Html表格背景颜色透明度怎么调,只用HTML和css