2016-08-30 2 views
1

Ich suche den Hintergrund der Seite mit dem Mausrad. Ich möchte das mousewheel -Ereignis nur einmal 1000ms auslösen, dafür benutze ich eine Entprellfunktion.Entprellen Funktion bedeutet e.preventDefault am Mausrad funktioniert nicht mehr

Bevor ich die Debounce-Funktion hinzugefügt und e.preventDefault() verwendet, verhindert es die Scrollfunktion. Jetzt, da ich die Entprellfunktion hinzugefügt habe, funktioniert dies nicht mehr und der Benutzer kann die Seite erneut scrollen.

Bitte Code unten beachten.

$(document).ready(function() { 
    $(document).on('mousewheel DOMMouseScroll',debounce(function(e){ 
     e.preventDefault(); 
     //code to change the background image 
    }, 1000)) 
}); 

function debounce(fn, delay) { 
    var timer = null; 
    return function() { 
    var context = this, args = arguments; 
    clearTimeout(timer); 
    timer = setTimeout(function() { 
     fn.apply(context, args); 
    }, delay); 
    }; 

Antwort

0

dann es so bauen:

$(document).ready(function() { 
    var changeBackground = debounce(function(e){ 
     //code to change the background image 
    }, 1000) 
    $(document).on('mousewheel DOMMouseScroll',debounce(function(e){ 
     e.preventDefault(); 
     changeBackground(e); 
    }) 
}); 
Verwandte Themen