Uso dos eventos ( scroll y mousewheel ).
Me gustaría obtener deltaY para el evento mousewheel para controlar un control deslizante.
La variable getDelta devuelve números e undefined a pesar de mi condición en el evento mousewheel .
Me gustaría obtener valores deltaY afuera.
¿Qué pasa, por favor? Gracias de antemano.
$(window).on('scroll mousewheel', function(e) { if (e.type == "mousewheel") { var getDelta = e.deltaY; } console.log(getDelta); }pones el registro de la consola fuera si la condición.
$(window).on('scroll mousewheel', function(e) { var getDelta; if (e.type == "mousewheel") { getDelta = e.deltaY; } if(getDelta) { console.log(getDelta); }else{ console.log("delta is null"); } }La mejor manera (en mi opinión) de hacer tus cosas con deltaY / X es usar detectores de eventos. Se pueden conectar y desconectar fácilmente, ya sea por acción humana o por algún activador automático generado por su aplicación/secuencia de comandos.
Coloque el código a continuación en una página web y verifique si está bien para usted.
<script> // Getting delta trough event listeners // then passing them as parameters to be consumed by other function(s) function getDelta (e) // ... starting delta events capture { // We capture here both X and Y delta values (but you can use only deltaY) because // some mice may have left and right buttons on the scroll wheel // (Logitec g502 / Razer Basilisk / etc, ...) console.log(e.deltaX + ' <- left right || up down -> ' + e.deltaY); doSome(e.deltaY, e.deltaX); // ... the function which will consume events } function startDelta () { document.addEventListener('wheel', getDelta); } function stopDelta () // we stop deltaX and deltaY capture { document.removeEventListener('wheel', getDelta); } function doSome (y, x) // we pass events as arguments so we can use them { if (x > 0) console.log('some div with overflow will scroll left'); if (x < 0) console.log('some div with overflow will scroll right'); if (y > 0) console.log('some div with overflow will scroll up'); if (y < 0) console.log('some div with overflow will scroll down'); } </script> <button onclick="startDelta()"> Start Delta </button> <button onclick="stopDelta()"> Stop Delta </button>