Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

JS – Kinetic / Inertia scroll na Macu

Pavel Mareš
verified
rating uzivatele
(19 hodnocení)
12. 8. 2019 11:49:27
V JS nejsem rozený a úplně nevím, jak tenhle problém vyřešit dobře. Mám tuhle knihovnu https://www.cssscript.com/cross-platform-smooth-one-page-scrolling-pure-javascript/.
Problém je, že na Macu s MagicMouse a TrackPad existuje něco jako na mobilu (iOS / Android) Kinetic / Inertia scrolling (setrvačný scroll).
Tudíž při scrollu na webu (a při použítí MagicMouse a TrackPad) se to aktivuje a když neudělám malý scroll ale velký, tak mi to přeskočí 2+ sekcí (záleží jak moc uživatel scrollovat na tom zařízení).
Výsledek má být takový, že má skočit jen o jednu sekci.
Napadlo mě použít časovač, tj. že JS počítá čas od poslední akce a zruší další akci pokud předchozí nastala před méně než 3 000 ms (to je čas k dokočení animace od předchozího k novému slidu).
To mi nevyšlo ... nějaký nápad ???
12. 8. 2019 11:49:27
https://webtrh.cz/diskuse/js-kinetic-inertia-scroll-na-macu/#reply1411604
Napsal Doctore97;1539334
Napadlo mě použít časovač, tj. že JS počítá čas od poslední akce a zruší další akci pokud předchozí nastala před méně než 3 000 ms (to je čas k dokočení animace od předchozího k novému slidu).
To mi nevyšlo ... nějaký nápad ???
Problém nejspíše máte s tím, že i po N ms touchpad, či jiné zařízení kterým scrollujete, stále odesílá události, i pokud uživatel již dávno nic nedělá. Takže nejspíše budete chtít ignorovat události které negeneruje přímo uživatel... k tomu slouží třeba Lethargy - https://github.com/d4nyll/lethargy .
Zkusil jsem si to implementovat do oné knihovny a výsledek je zde: http://demos.miroslavfoltyn.com/fullscreen/
Nemůžu to aktuálně otestovat na velkém množství zařízení, ale touchpad a mobil to zvládá v pohodě, i kdyby byl problém, nejspíše byste jej vyřešil vhodnými parametry pro Lethargy.
Jestli chcete vidět, které změny jsem provedl, udělejte si diff k nejnovější verzi https://github.com/amendoa/fullPageScrollPureJS .
Doplnil jsem to do toho nějak nahrubo, nekteré metody jsou nyní zbytečné.
18. 8. 2019 00:18:36
https://webtrh.cz/diskuse/js-kinetic-inertia-scroll-na-macu/#reply1411603
Pavel Mareš
verified
rating uzivatele
(19 hodnocení)
18. 8. 2019 00:52:37
Super, koukal jsem na lethargy ale nepodařilo se mi implementovat správně. Moc díky, implementoval jsem a funguje skvěle.
18. 8. 2019 00:52:37
https://webtrh.cz/diskuse/js-kinetic-inertia-scroll-na-macu/#reply1411602
Pro odpověď se přihlašte.
Přihlásit