JQuery исчезают, потому что в верхней части прокрутки, как я могу решить? - PullRequest
4 голосов
/ 07 февраля 2011

У меня проблема с методом jQuery fadeIn (или fadeOut).Я создаю ротатор статьи, все работает нормально, но есть проблема, когда страница прокручивается внизу и вращается статья. Метод fadeIn (или fadeOut) вызывает прокрутку к позиции статьи.Я думаю, что эти методы изменяют свойство css top тела, но я не знаю, как этого избежать!Любая идея ???

здесь код

    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;
}

хорошо здесь сайт http://kario91.altervista.org/ultimate текст от Joomla это полный сайт!переменные работают нормально, проблем нет .. попробуйте уменьшить окно браузера и прокрутить дно

Ответы [ 3 ]

5 голосов
/ 07 февраля 2011

Я испытываю соблазн сказать, что эта проблема связана с тем, что, когда ваша статья полностью исчезает, непосредственно перед вызовом обратного вызова, высота вашей страницы уменьшается (потому что статья скрыта), и из-за этого,браузер прокручивается вверх, пока нижняя часть страницы (без статьи) не окажется в нижней части окна браузера.Попробуйте удалить обратный вызов после завершения fadeOut, и вы можете заметить, как браузер выравнивает дно.

Я думаю, вы могли бы это исправить, задав контейнер для статьи высоту перед существами fadeOut, и когдаfadeOut завершен, удалите эту высоту сразу после начала fadeIn ... Или что-то в этом роде.

Надеюсь, это поможет!

2 голосов
/ 04 ноября 2012

Я решил это с помощью fadeTo (), это что-то вроде этого

Резервное копирование вашей позиции

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

FadeOut:

$("#content").fadeOut(300,function(){........});

Чтобы вернуться, сделайте"semi" fadeIn и обратный вызов позиции с помощью:

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

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


});

, и они полностью исчезают в

$("#content").fadeTo(300,1);
1 голос
/ 17 апреля 2012

Установка высоты для родительского контейнера решила проблему.

...