jQuery - 黑&白色图像到彩色图像(悬停)

时间:2011-04-12 09:55:50

标签: jquery fadein mouseout

我在css中包含了黑白图像:

http://cl.ly/3G0E0g1e2G2h3k3U3F2O

在我放入彩色图像的同一个文件中:

http://cl.ly/1l2A2F0o1j3E1z2s223V

现在我想将鼠标悬停在此图像上时已从黑白变为彩色......

我把这个函数放在jQuery中:

    $("ul li").mouseover(function() {

        $(this).find("span.thumb").hover().css({
            'background-position': 'center bottom'
        }).stop().fadeTo(400, 0).show();

    });

    $("ul li").mouseout(function() {

        $(this).find("span.thumb").hover().css({
            'background-position': 'center top'
        }).stop().fadeTo(400, 1).show();

    });

HTML:

<span class="thumb"></span>

CSS:

ul li span.thumb {background:url(image.png) no-repeat}
问:我怎么能以不同的方式做到这一点? (当你将鼠标悬停在图像上时并没有消失)。

2 个答案:

答案 0 :(得分:3)

你好我认为你已经过度复杂了,试试这个:

<强> HTML

<div>
  <img src="http://ajthomas.co.uk/flower-col.png" alt="" />
</div>

<强> JQUERY

$(document).ready(function() {
    $('div').mouseover(function(){
        $('img').fadeIn('slow');
    });
    $('img').mouseout(function(){
        $('img').fadeOut('slow');
    });
});

<强> CSS

div{width:300px;
    height:300px;
    background-image:url(http://ajthomas.co.uk/flower-gs.png)}

img{display:none;}

我也在JSFiddle

上为你编了代码

答案 1 :(得分:0)

尝试使用CSS sprites:http://www.alistapart.com/articles/sprites

基本技术是将两个图像组合成一个背景图像,并将其设置为html元素的背景。然后,当发生悬停事件时,您只需将背景图像“移动”到背景图像的彩色部分可见的位置。 使用background-position css属性,您可以控制背景图像的哪个部分可见。

优点是第一次悬停时没有延迟,因为在页面加载时加载了bw以及图像的彩色版本。