функция ScrollTop работает только одним способом - PullRequest
0 голосов
/ 18 июня 2011

Я застрял в проблеме, я хотел бы использовать ту же функцию для перемещения вверх по окну, с ScrollTop, но "0" или "- = 10" не работает. Ты понимаешь почему? Если я ставлю оповещение, он распознает класс «monter», но никогда не поднимается до «0» или «- = 10». Вот мой код:

            function scroll_descendre(){
              var scrolling;
              $('.descendre, .monter').bind({
                    mousedown: function(){
                        var zone = $(this).prev();
                        scrolling = true; //this is here : 
                        if ($(this).attr('class')=='descendre') startScrolling(zone, '+=20');
                        else if($(this).attr('class')=='monter') startScrolling(zone, '0');
                    },
                    mouseup: function(){
                        scrolling = false;
                    },
                    click: function(e){
                        e.preventDefault();
                    }
                });

                function startScrolling(obj, param){
                if (!scrolling) {
                    obj.stop();
                } else {
                    obj.animate({"scrollTop": param}, "fast", function(){
                    if (scrolling) { startScrolling(obj, param); }
                    });
                }
            }
            }

Спасибо за вашу помощь

1 Ответ

1 голос
/ 21 июня 2011

Посмотрите на следующую строку:

var zone = $(this).prev();

Возможно, не выбран правильный элемент для анимации. Трудно сказать без вашей разметки HTML, но вы должны изменить ее на другой селектор.

Поскольку ваш элемент .monter может находиться перед контейнером прокрутки, попробуйте изменить его на:

var zone = $(this).next();
...