更好的jquery鼠标悬停方式?

时间:2009-12-03 16:28:42

标签: jquery hover mouseover

我正在尝试创建一种效果,如果将鼠标悬停在img上,文本的颜色将在其下方发生变化。而且,当你使用mouseout时,颜色会变回原来的颜色。该页面是:http://vitaminjdesign.com/work.html

我的代码是:

    if(window.jQuery){jQuery(function(){

        (function(){ jQuery('div#one img').bind('mouseover', function(event, ui){var target = jQuery('div#one h2'); target.animate({'color':'#111111'},250,'linear')});})();

    })};

我在一个页面中重复了这个约15次,它看起来很漂亮,而且不顺畅。玩了一会儿。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试使用hover,好处是可以在同一个函数中指定mousein和mouseout事件。如果您需要任何帮助,具体如何应用您在悬停事件中所做的事情,请发表评论,我会看到我能做些什么。

编辑:

好的,您网站上的代码已经有了这个

//On mouse over those thumbnail
$('.zitem').hover(function() {

    //Set the width and height according to the zoom percentage
    width = $('.zitem').width() * zoom;
    height = $('.zitem').height() * zoom;

    //Move and zoom the image
    $(this).find('a img').stop(false,true).animate({'width':width, 'height':height, 'top':move, 'left':move}, {duration:200});

    //Display the caption
    $(this).find('div.caption').stop(false,true).fadeIn(200);
},
function() {
    //Reset the image
    $(this).find('a img').stop(false,true).animate({'width':$('.zitem').width(), 'height':$('.zitem').height(), 'top':'0', 'left':'0'}, {duration:100});    

    //Hide the caption
    $(this).find('div.caption').stop(false,true).fadeOut(200);
});

我将在此代码中添加两行,以满足您的需求

//On mouse over those thumbnail
$('.zitem').hover(function() {

    //Set the width and height according to the zoom percentage
    width = $('.zitem').width() * zoom;
    height = $('.zitem').height() * zoom;

    //Move and zoom the image
    $(this).find('a img').stop(false,true).animate({'width':width, 'height':height, 'top':move, 'left':move}, {duration:200});

    //Change the header colour
    $(this).siblings('h2').animate({'color':'#111111'},250,'linear');

    //Display the caption
    $(this).find('div.caption').stop(false,true).fadeIn(200);
},
function() {
    //Reset the image
    $(this).find('a img').stop(false,true).animate({'width':$('.zitem').width(), 'height':$('.zitem').height(), 'top':'0', 'left':'0'}, {duration:100});    

    //Change the header colour back
    $(this).siblings('h2').animate({'color':'#EE4E07'},250,'linear');

    //Hide the caption
    $(this).find('div.caption').stop(false,true).fadeOut(200);
});

应该这样做