2

我试图同时淡出一个 div 和淡入另一个 div。它可以在 Firefox 和 IE(7-9) 中正确运行,也可以在 Chrome 中运行。但是,在 chrome 中,在淡出之后,我的页面必须滚动到顶部,然后再淡入。

我希望在谷歌浏览器中没有像 Firefox 和 IE 那样滚动的情况。

$("ul.main_news li:eq(0)").hover(function(){
    $(".a").stop(true, true).fadeOut(300).promise().done(function(){
    $(".b").stop(true, true).fadeIn();  
    }); 
    $(this).removeClass("asew");
    $(this).addClass("sdghe");
    $("ul.main_news li:eq(1)").removeClass("sdghe");
    $("ul.main_news li:eq(1)").addClass("asew");
    });


$("ul.main_news li:eq(1)").hover(function(){
    $(".b").stop(true, true).fadeOut(300).promise().done(function(){
    $(".a").stop(true, true).fadeIn();
    });
    $(this).removeClass("asew");
    $(this).addClass("sdghe");
    $("ul.main_news li:eq(0)").removeClass("sdghe");
    $("ul.main_news li:eq(0)").addClass("asew");
});
4

3 回答 3

2

你应该使用这个插入 promise() 的代码

$(".b").stop(true, true).fadeOut(300).queue(function(){
    $(".a").stop(true, true).fadeIn();
});
于 2012-10-07T08:32:27.740 回答
1

你不想stop()在任何地方使用方法!也许在回调中使用它有一些问题fadeOut()!尝试这个:

("ul.main_news li:eq(1)").hover(function(){
      $(".b").stop(true, true).fadeOut(300).promise().done(function(){
        $(".a").fadeIn();
    });
于 2012-10-08T15:53:45.060 回答
1

您应该在没有回调的情况下使用此代码:

$(".a").stop(true, true).fadeIn(300);       
$(".b").stop(true, true).fadeOut(0);
于 2012-10-07T10:43:35.240 回答