Jquery fadeIn导致滚动顶部,如何解决?

Jquery fadeIn导致滚动顶部,如何解决?,jquery,ajax,fadein,fadeout,image-rotation,Jquery,Ajax,Fadein,Fadeout,Image Rotation,我对jqueryfadein(或fadeOut)方法有问题。 我构建了一个文章旋转器,一切正常 但是当页面向下滚动并且文章旋转时会出现问题, fadeIn(或fadeOut)方法会导致滚动到文章位置。 我认为这些方法,改变了身体的css顶端属性, 但我不知道如何避免这种情况! 有什么想法吗 这是密码 function rotate(direction) { if($('articles > article:visible:first') == 'undefined')

我对jqueryfadein(或fadeOut)方法有问题。 我构建了一个文章旋转器,一切正常 但是当页面向下滚动并且文章旋转时会出现问题, fadeIn(或fadeOut)方法会导致滚动到文章位置。 我认为这些方法,改变了身体的css顶端属性, 但我不知道如何避免这种情况! 有什么想法吗

这是密码

    function rotate(direction)
{
    if($('articles > article:visible:first') == 'undefined')
        $currentArticle = $('articles > article:first');
    else
        $currentArticle = $('articles > article:visible:first');

    if($currentArticle.attr('id') == $('articles > article:last').attr('id'))
        $next = $('articles > article:first');
    else
        $next = $currentArticle.next();

    if($currentArticle.attr('id') == $('articles > article:first').attr('id'))
        $prev = $('articles > article:last');
    else
        $prev = $currentArticle.prev();

    if($do_animation)
    {
        $currentArticle.fadeOut(1000,function(){
                switch(direction)
                {
                    case 1:
                        $next.fadeIn(1000);
                        break;
                    case -1:
                        $prev.fadeIn(1000);
                        break;
                }
                if($('.rotate_show'))
                    $('.rotate_show').removeClass('rotate_show');
                $('article_number > btn[id|="'+$next.attr('id')+'"]').addClass('rotate_show');
                });
    }
    else
        return false;
}

好的,这里的网站文本来自joomla,这是完整的网站!变量工作正常,没有问题。。尝试缩小浏览器窗口并向下滚动

我想说,这个问题是因为当你的文章完全淡出时,就在调用回调之前,你的页面高度会降低(因为文章是隐藏的),因此,浏览器会向上滚动到页面底部(不含文章)位于浏览器窗口的底部。请在
淡出
完成后尝试删除回调,您可能会注意到浏览器如何对齐底部

我想你可以通过在淡出前给文章容器一个高度来解决这个问题,当淡出完成后,在淡出开始后移除这个高度……或者类似的东西


我希望这会有所帮助!

将高度设置为父容器解决了这个问题。

我用fadeTo()解决了这个问题,就像这样

支持你的立场

$("#position").attr("name","scroll"+$("body").scrollTop());
淡出:

$("#content").fadeOut(300,function(){........});
要返回,请执行“半”fadeIn并使用以下命令回调位置:

$("#content").fadeTo(10,0.1,function(){

$("body").scrollTop($("#position").attr("name").replace("scroll",""));


});
它们完全消失了

$("#content").fadeTo(300,1);

我知道答案,但在你发布一些代码之前我无法告诉你。如果你知道答案,那么发布代码的人与之有什么关系?现在我发布了进行旋转的函数代码。我看不出这会如何影响滚动,但我可以告诉你,你必须小心定义变量的方式和位置。如果
$currentArticle
未在函数之外定义(不应该在函数之外定义),然后使用函数定义顶部的
var
定义一次。这应该解释一下,例如,
$do_animation
是在哪里定义的?-但为了解决您的问题:您能在某处为我们提供一个整页的示例吗?好的,这里的站点文本来自joomla,这是完整的站点!变量工作于ine,没有问题..尝试缩小浏览器窗口和滚动底部我有一个类似的问题,并通过在CSS中为正在淡入淡出的元素包装的div设置一个“高度”来解决。谢谢你为我指明了正确的方向。