Autor Zpráva
joe
Profil
Ahoj,

neví někdo, jestli je možné při skrolování nad elementem zabránit skrolování celé stránky?

Mám absolutně pozicovaný element s vertikálním posuvníkem (celá stránka má také vertikální posuvník) a pokud točím kolečkem na myši dolu, posuvník se posouvá, ale jakmile dojede na konec, začne se hýbat se stránkou - to je to, co bych chtěl zrušit. A pokud by to skrolování v tom divu fungovalo, i když kurzor bude mimo něj, tak by to bylo ještě lepší :-)

Půjde to nějak udělat?

Vím jak zrušit skrolování úplně, ale to pak nefunguje nikde... snad jedině, že bych kontroloval offsetTop (nebo v jaké vlastnosti bych to našel) a porovnával ho s výškou obalu a pokud bych byl s posuvníkem dole, zakázal bych skrolování úplně... nebo by to šlo i jinak?
Chamurappi
Profil
Reaguji na joa:
Něco podobného jsem před pár měsíci řešil. Postupoval jsem tak, že jsem při zpracování události onmousewheel rolování na vnitřním elementu obstaral sám (nastavením scrollTop s ohledem na velikost event.wheelDelta) a vrátil jsem false. Pokud vnitřním elementem rolovat už nešlo, počítal jsem, kolikrát a jak moc bylo kolečkem myši zatočeno během poslední půlsekundy — pokud počet přesáhl určitou mez, vrátil jsem true, a tudíž jsem nechal prohlížeč pohnout nadřazeným elementem (celou stránkou). Uživatel díky tomuto opatření mohl nadále svobodně rolovat, čím chtěl, akorát musel překonat určitý vzdor, pokud narazil na limity u vnitřního elementu.
joe
Profil
Chamurappi:
Díky za radu, to vypadá dobře a asi to bude nejlepší řešení, jak něco takového udělat.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0