CSS3中的图像替换和过渡效果?

3
我想知道是否有聪明且现代的CSS3方法来在两个背景图像之间制作过渡效果?我知道那里有多个教程,只是大多数已经过时了。
我有一个简单的logo.png设置为的背景(我希望它作为背景图像而不是通过)。当我悬停在上面时,我希望平滑地过渡到"logo-hover.png",这是相同的文件,只是颜色不同。
如何在今天实现这样的效果?
我的做法是这样的: - 我创建了一个外部容器,将放置在其中,并使其具有相对位置。我在其中放置了两个具有绝对位置的div,叠加在彼此之上。div.hover设置为display:none,如果我悬停在它上面,我使用css3 transition来动画显示它的opacity。
这是唯一的方法吗? 实际上,我很想使用仅使用纯CSS的方法,而无需向dom本身添加带有hover状态的额外div。
对此有什么想法吗?
先谢谢你了。
3个回答

3

使用这个

#home .stripes, #home .stripes:hover a {
    text-indent: -9999px;
    width: 116px;
    height: 128px;
    margin: 50px 0px 0px 56px;
    float:left;
    padding: 0;
    background:url('http://www.clipartpal.com/_thumbs/024/christmas/christmas_024_02_tns.png');
}
#home .stripes a {
    background:url('https://secure.10foldsolutions.com/ecommerce/images/9/products/29197.jpg');
    -webkit-transition: all .6s ease-in-out;
    -moz-transition: all .6s ease-in-out;
    -o-transition: all .6s ease-in-out;
    -ms-transition: all .6s ease-in-out;
    transition: all .6s ease-in-out;
}
#home .stripes a:hover, #home .stripes a:focus {
    background:url('https://secure.10foldsolutions.com/ecommerce/images/9/products/29197.jpg');
    opacity: 0;
}

并且


2

我刚刚想出了一个解决方案。

我希望有一种方法使图像看起来像精灵图,但保持超级简单。

HTML:

<div class="facebookicon">
    <a href="#!"><img src="http://example.com/some.png"></a>
</div>

CSS:

.facebookicon img {
    background: #fff;
    transition:  background 400ms ease-out;
}

.facebookicon img:hover {
    background: #3CC;
    transition:  background 400ms ease-in;
}
/* you need to add various browser prefixes to transition */
/* stripped for brevity */

你可以在这里看到它:

http://jsfiddle.net/mattmagi/MpxBd/


1

我认为这就是你想要的:DEMO.

基本上它使用像你说的转换:

CSS 标记:

.imagesTest {
    position:relative;
    height:200px;
    width:300px;
}
.imagesTest img {
    position:absolute;
    -webkit-transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    -o-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;
}

.imagesTest img.top:hover {
    opacity:0;
}​

HTML标记:

<div class="imagesTest">
    <img class="bottom" src="some/image" />
    <img class="transition" src="some/image" />
</div>​

欲知详情,请查看更多这里的示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接