Rob W schlug vor, dass ich mir hier auf dem Stapel einen anderen Beitrag anschaue, der im Wesentlichen meinem ursprünglichen Beitrag ähnlich war. Beim Lesen habe ich einen Link zu einer Seite gefunden:
http://james.padolsey.com/javascript/special-scroll-events-for-jquery/
Dies hat mir letztendlich geholfen, mein Problem sehr gut zu lösen, nachdem ich ein wenig an meine eigenen Bedürfnisse angepasst hatte, aber insgesamt hat es mir geholfen, viel Ärger aus dem Weg zu räumen und mir ungefähr 4 Stunden Zeit zu sparen, es selbst herauszufinden.
Da dieser Beitrag einen gewissen Wert zu haben scheint, dachte ich, ich würde zurückkommen und den Code bereitstellen, der ursprünglich auf dem genannten Link gefunden wurde, für den Fall, dass der Autor jemals beschließt, mit der Site eine andere Richtung einzuschlagen, und den Link schließlich entfernt.
(function(){
var special = jQuery.event.special,
uid1 = 'D' + (+new Date()),
uid2 = 'D' + (+new Date() + 1);
special.scrollstart = {
setup: function() {
var timer,
handler = function(evt) {
var _self = this,
_args = arguments;
if (timer) {
clearTimeout(timer);
} else {
evt.type = 'scrollstart';
jQuery.event.handle.apply(_self, _args);
}
timer = setTimeout( function(){
timer = null;
}, special.scrollstop.latency);
};
jQuery(this).bind('scroll', handler).data(uid1, handler);
},
teardown: function(){
jQuery(this).unbind( 'scroll', jQuery(this).data(uid1) );
}
};
special.scrollstop = {
latency: 300,
setup: function() {
var timer,
handler = function(evt) {
var _self = this,
_args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout( function(){
timer = null;
evt.type = 'scrollstop';
jQuery.event.handle.apply(_self, _args);
}, special.scrollstop.latency);
};
jQuery(this).bind('scroll', handler).data(uid2, handler);
},
teardown: function() {
jQuery(this).unbind( 'scroll', jQuery(this).data(uid2) );
}
};
})();