在CSS中淡入到另一个精灵工作表位置的最简单方法



目前我在一个网站上工作,该网站在单独的精灵表上有多个图像(就像这个链接(imgur)中的两个)。我正在尝试将较暗的图像淡化为较亮的图像,我一直在使用类似于的东西

.display {
    background-image: url("../images/1.png");
    display: block;
    background-position: 0 -53px;
    width: 124px;
    height: 53px;
}
.display:hover {
    background-image: url("../images/1.png");
    display: block;
    background-position: 0 0px;
    width: 124px;
    height: 53px;
}

这是有效的,但它只是让图像立即改变,我更喜欢悬停时的某种"淡入"或"光晕"效果。实现我想要的结果最简单的方法是什么?我想它可能是jQuery或CSS3中的东西,但我真的没有运气。

在CSS 3中,您可以这样做,设置opacity并添加transformation,这样您只需要一个图像!看看这个:

img {
    opacity: 0.5;
    transition: opacity 0.5s;
    -moz-transition: opacity 0.5s; /* Firefox 4 */
    -webkit-transition: opacity 0.5s; /* Safari and Chrome */
    -o-transition: opacity 0.5s; /* Opera */
}
img:hover {
    opacity: 1;
    transition: opacity 0.5s;
    -moz-transition: opacity 0.5s; /* Firefox 4 */
    -webkit-transition: opacity 0.5s; /* Safari and Chrome */
    -o-transition: opacity 0.5s; /* Opera */
}​

Fiddle:http://jsfiddle.net/sBeed/

将一个div放在带有悬停类的容器中,然后淡入悬停div。我以前做过。。。这适用于任何浏览器,甚至ie7/ie8

<div class="container">
    <div class="hover"></div>
</div>
$(".container").hover(function(){
    $(".hover", this).fadeIn();
});
.container {
    position:relative;
}
.container.hover {
    position:absolute;
    top:0px;
    left:0px;
    display:none;
}

最新更新