Detekce směru scrollování

Událost onscroll

JS událost, která se provede při každém posunu po stránce, se jmenuje onscroll.

window.onscroll = function () {
  // kód se vykoná při rolování
}

Vlastnosti scrollTop a scrollLeft

Údaje o odrolování jsou ve vlastnostech:

  • scrollTop – odrolováno shora
  • scrollLeftzleva

Pokud nás zajímá rolování vrámci celé stránky, budeme zjišťovat scrollTop a scrollLeft u elementu <body>.

var zleva = document.documentElement.scrollLeft + document.body.scrollLeft;
var shora = document.documentElement.scrollTop + document.body.scrollTop;

Proč se pro spočítání scrollX sčítá document.body s document.documentElement? Je to kvůli Chrome, kde je potřebná hodnota v document.body.scrollX, zatímco v ostatních prohlížečích v document.documentElement.scrollX.

Určení směru

Směr rolování určíme na základě změny hodnot zleva a shora při porovnávání s předchozím rolováním.

  • V případě, že se nerovná minulá a současná vodorovná (scrollLeft) posice => roluje se do strany.
  • V případě, že se nerovná minulá a současná svislá (scrollTop) posice => roluje se svisle.

Porovnáním větší/menší potom zjistíme i směr.

Živá ukázka (při rolování se vypíše směr)

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Odrolování na element

Odrolování na určitý HTML tag

Nestačí-li běžné odrolování na HTML #kotvu, přichází na řadu JavaScript.

Zvýraznění podle rolování

Označení odkazu na kotvu, pokud je na ní odrolováno

U jednostránkových webů s fixní navigací (s odkazy na #kotvy) může být vhodné právě viditelnou (aktivní) položku zvýraznit.

Zakázat rolování stránky

Jak zakázat scrollování na stránce

Někdy se hodí zamezit uživateli v rolování, jaké existují možnosti?

Změna location.hash bez odrolování stránky

Změna location.hash bez posunu stránky

Jak změnit location.hash bez posunutí stránky.

Odkaz na kotvu a fixní menu

Odkaz na kotvu a fixní hlavička

Při použití fixního menu/hlavičky se stane nepěkná věc, že při odkazu na kotvu je cíl skryt pod menu. Co s tím?

Komentáře