0

当使用带有淡入和淡出的动画滚动顶部时,我遇到了这个可怕的故障(它有点跳跃或闪烁)。我有一个动态加载内容的 Div。当用户单击主页上的菜单按钮时,页面应滚动到顶部,然后开始淡出 div,然后用新内容更新 div,然后再淡入。

一半时间它工作正常,但另一半它出现故障。我尝试了 firefox、chrome 和opera,它们都有相同的行为。

function loadPage(url)
{
    $("html, body").animate({ scrollTop: 0}, 500);
    setTimeout(function (){ $('#centerBox').load(url); }, 1000);
    $('#centerBox').fadeOut(1000);
    $('#centerBox').fadeIn(1500);
}

代码说明:所以当一个菜单按钮被点击时,上面的函数就会被调用。主页面将滚动到顶部。div 的内容有一个计时器,以便在淡出完全完成后更改内容,但在足够的时间内更改以准备淡入。

我正在使用以下方法调用 loadPage(url) 函数:

<a href="#" onclick="loadPage('news.html');"><img src="buttons/newsWhite.png"/></a>
4

2 回答 2

1

尝试将其更改为此:

function loadPage(url)
{
    $("html, body").animate({ scrollTop: 0}, 500, function(){
        $('#centerBox').fadeOut(1000, function(){
            $('#centerBox').load(url, function(){
                $('#centerBox').fadeIn(1500);
            }); 
        });   
    });
}

在淡出动画完成之前,这不会加载 url。

于 2013-05-23T15:28:59.040 回答
0

我似乎在这里解决了我的问题。

$(document).ready(function(){ 
        $('#news').click(function(){
            $("html, body").animate({ scrollTop: 0}, 500, function(){
                $('#all').fadeOut(1000, function(){
                    $('#centerBox').load('news.html', function(){
                        $('#all').fadeIn(1500);
                    }); 
                });   
            }); 
            return false;
        });
     });

然后我使用以下方法调用它:

 <a href="#" id="news");"><img src="buttons/newsWhite.png" width="130" height="25"/></a>

我是 JavaScript 和 JQuery 的新手(你可能会说),你认为这可能与不使用 document.ready() 有关吗?

于 2013-05-24T12:01:05.470 回答