Ich benutze das Jquery inview plugin und versuche einige Elemente zu laden, wenn der Benutzer die Fußzeile der Seite erreicht. Dabei habe ich einen Fehler entdeckt, bei dem der Benutzer die Scroll-Taste gedrückt hält und die Maus nach unten zieht. In einigen Fällen werden die Elemente nicht mehr geladen, bis die Fußzeile nicht mehr in der Ansicht angezeigt wird. Hier ist die Funktion, die ich bisher haben die Elemente zu laden, wenn die Fußzeile im Ansichtsfenster ist:Führe etwas aus, während das Element angezeigt wird
//Infinite load function. Uses jquery.inview
$scope.addMoreElements = function(){
$scope.limitElementsPerPage += 16;
$('.footer').on('inview', function(event, isInView) {
if (isInView) {
// element is now visible in the viewport
$scope.limitElementsPerPage += 16;
} else {
// element has gone out of viewport
//do nothing
}
});
};
ich für dieses Projekt sowie jQuery bin mit AngularJS. Was ich im Grunde brauche, ist etwas, das nach 1-2 Sekunden überprüft, ob das Element noch sichtbar ist. Ich bin mir nicht sicher, ob ich das jetzt tun sollte. Dies ist, was ich dieses Problem zu tun versucht zu lösen:
$scope.$watch($('.footer'), function(){
$('.footer').on('inview', function(event, isInView) {
setTimeout(function(){
while(isInView){
console.log('test')
}
}, 1000);
});
});
Diese leider wird der Browser zum Absturz bringen (ich bin nicht sicher, wie ich über das tun dies mit der setTimeout oder anderen verwandten Funktionen gehen würde).
Jede Hilfe oder Ideen, wie dies zu tun wäre, würde sehr geschätzt werden.
Vielen Dank im Voraus.
Ich sehe. Wird es auch auf Mobilgeräten funktionieren? Ich hatte einige Schwierigkeiten mit scrollTop() und offset() auf Handy und deshalb habe ich inview verwendet. – Scombine
Mein Blog verwendet es und ich hatte keine Probleme damit. Auf der anderen Seite kann es ein Problem sein, endlose Scrolls auf langsamen Handys zu haben, da sie eine immer größere Seite darstellen müssen. Es ist Ihre Wahl. –