sábado, 3 de dezembro de 2011

(Javascript) Scroll Automatico 2

Como prometido. Eu iria lançar a versão 2 do sistema de Scroll Automatico (estilo jQuery. Animação)

Como pode ver. Cumpri minha promessa. Segue aqui o código da versão 2

function getScrollSize()
{
this.maxY = 'scrollMaxY' in window ? window.scrollMaxY : document.getElementsByTagName("body")[0].scrollHeight - document.getElementsByTagName("body")[0].clientHeight;
this.maxX = 'scrollMaxX' in window ? window.scrollMaxX : document.getElementsByTagName("body")[0].scrollWidth - document.getElementsByTagName("body")[0].clientWidth;
return true;
}



function autoScroll(tempo, to) {


alert(document.getElementsByTagName("body")[0].style.maxHeight);
if (window.pageYOffset < to) {
scrollInterval(((window.pageYOffset + to) / (tempo / 25)), 1, to);
} else {
scrollInterval(((window.pageYOffset - to) / (tempo / 25)), 0, to);
}
return true;
}

function scrollInterval(y, baixo, max) {

if (baixo && window.pageYOffset < max) {
setTimeout(function () {
scrollInterval(y, baixo, max);
}, 25);

scrollTo(0, window.pageYOffset + y);
}

if (!baixo && window.pageYOffset > max) {
setTimeout(function () {
scrollInterval(y, baixo, max);
}, 25);

scrollTo(0, window.pageYOffset - y);
}

return true;

}

Qual a diferença?
Nesta versão o scroll também move pra baixo. Também foram arrumado bug de limites e precisão no cálculo para "scrollar"

O uso é praticamente o mesmo da versão anterior:
autoScroll(tempo, to)
tempo = Tempo em milésimos de segundos para movimentar o scroll até TO, que será o ponto de chegada

Espero que tenham gostado. Abraços

Função de Auto Scroll por Bruno da Silva

3 comentários:

  1. Bruno,
    poderia mostrar um exemplo deste código em execução?
    Obrigado!

    ResponderExcluir
  2. Aqui no próprio blog eu utilizo este código

    ResponderExcluir