Javascript mousewheel event ne hívódjon újra

Javascript mousewheel event ne hívódjon újra
2017-03-29T09:46:13+02:00
2017-03-29T15:11:57+02:00
2022-12-04T11:30:43+01:00
Skor
Sziasztok.

Segítségre lenne szükségem!  A probléma, hogy van ez a javascript kódom, ami ennyit csinál, hogy egér görgetésre az oldal #-jei alapján odascrolloz a kért helyre. Ez vízszintesen működik. Amikor egyet görgetek az egérrel, akkor szépen odacsúszik, viszont ha gyorsan tekerek sokat, akkor megáll, ugrál, bezavarodik. Gondolom azért, mert az event folyamatosan újrahívja a scroll függvényt.
Hogy tudom megoldani, hogy amíg az előző event nem futott le, addig semmi se történjen?

Köszönöm előre is!

$(document).bind('mousewheel', function(e) { if(window.location.hash) { var hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character var path = window.location.pathname; var pathArray = window.location.pathname.split( '/' ); var pages = []; if (pathArray[1] === '') { var pages = ["wallet", "buy", "mining", "products", "card"]; } else if (pathArray[1] === 'pages') { var pages = ["about", "team", "contact", "faq"]; } if (pages.length > 0) { for (i = 0; i < pages.length; i++) { if (pages[i] == hash) { if((e.originalEvent.wheelDelta / 120 > 0) && pages[i+1] !== 'undefined' && pages[i+1] !== null) { e.preventDefault(); scrollToSection("#" + pages[i+1]); } else if((e.originalEvent.wheelDelta / 120 < 0) && pages[i-1] !== 'undefined' && pages[i-1] !== null) { e.preventDefault(); scrollToSection("#" + pages[i-1]); } } } } } });
Mutasd a teljes hozzászólást!
Hogy tudom megoldani, hogy amíg az előző event nem futott le, addig semmi se történjen?


var mouseWheel = true; $(document).bind('mousewheel', function(e) { .... if(!mouseWheel) { return; } mouseWheel = false; if(window.location.hash) { .... mouseWheel = true;
És a bind-hoz talán kell a DoMMouseScroll is.
$(document).bind('mousewheel DOMMouseScroll') ..
Szerk: Előfordulhat, hogy szükség van, egy kevés setTimeout-ra a mouseWheel visszaállítása előtt.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd