none
Problema com Scroll da página RRS feed

  • Pergunta

  • Tenho um textbox que retornada de uma busca (depois de carregar a pagina) em uma tabela, e nessa tabela utilizo o slimScroll do Jquery (api: http://rocha.la/jQuery-slimScroll?page=6). 
    O problema ocorre na barra de rolagem da pagina (nao da tabela), eu gostaria de quando o foco estiver na tabela, respeitasse o slimScroll e a barra da pagina ficasse fixa, quando o foco sair da tabela respeitasse a barra de rolagem da pagina.

    Estou usando o seguinte código javascript (em minha pagina asp) para tentar fazer isso, só que ao rolar a roda do mouse dentro da tabela a barra de rolagem da página vai para o topo automaticamente, eu gostaria que ela ficasse onde estava antes:


    //Rolar somente o slimScroll qndo tiver dentro da tabela
    tblTable.onmousewheel = function () {
                
    	    //Pegar a posicao da barra da pagina (de fora)
                s = $(window).scrollTop();
    
                
                //Desabilitar a barra de fora (para nao descer junto com o slimScroll)
                $("body").css("overflow-y", "scroll");
                $("body").css("position", "fixed");
    
    }
    
    //Quando sair da tabela, habilitar a barra da pagina
    tblTable.onmouseout = function () {
    
                //Setar a posicao da barra da pagina (para nao ir para o topo)
                window.scrollTo(0, s);
    
      	    //Habilitar a barra da pagina de fora
                $("body").css("overflow-y", "scroll");
                $("body").css("position", "inherit");
    
                
    }

    Alguém teria uma solução melhor, ou alguma sugestão?

    Obrigado.

                                                                  
    quinta-feira, 17 de outubro de 2013 12:21

Respostas

  • Consegui resolver da seguinte maneira:

    function stop() {
            return false;
    }
    
            function start() {
            return true;
    }
    
    //Rodar mouse, desabilita a barra da pagina
    tblTable.onmousewheel = function () {
            document.onmousewheel = stop;
    }
    
    //Sair da tabela, habilita a barra da pagina
    tblTable.onmouseout = function () {
            document.onmousewheel = start;
    }

    • Marcado como Resposta d2013 quinta-feira, 17 de outubro de 2013 16:32
    quinta-feira, 17 de outubro de 2013 16:32