it-swarm.com.de

So lösen Sie ein On-Scroll-Ereignis aus, ohne zu scrollen

meine Frage ist, wie kann ich ein On-Scroll-Ereignis auslösen (simulieren oder etwas anderes)? In meinem speziellen Fall möchte ich nicht alle Konservierungen in LinkedIn laden, indem ich alle Konservierungen nach unten scrolle, weil es zu viele gibt! 

Ich brauche keine PHP oder Javascript-Lösung. Die Verwendung von Dev-Tools bei Chrome reicht aus, um mein Ziel zu erreichen.

11
CTSchmidt

Sie benötigen unbedingt eine Javascript-Lösung. Was wird das Ereignis sonst noch hören/auslösen, denkst du?

Wenn Sie ein Scroll-Ereignis feuern möchten, blättern Sie einfach wörtlich zu dem Punkt, an dem Sie sich bereits befinden, indem Sie window.scrollTo(window.scrollX, window.scrollY); in Ihre Dev-Tools-Konsole eingeben. Alternativ können Sie eine Fälschung mit einer Kombination aus CustomEvent und der Funktion dispatchEvent durchführen.

Wenn Sie bei einem Bildlaufereignis etwas auslösen möchten, warten Sie mit Hilfe von window.addEventListener("scroll", function(evt) { ... }); auf Bildlaufseiten, und lassen Sie die Verarbeitungsfunktion das tun, was Sie tun müssen.

Dies funktioniert nicht in Chrome oder Firefox

window.scrollTo(window.scrollX, window.scrollY);

Das funktioniert bei beiden:

window.scrollTo(window.scrollX, window.scrollY - 1);
window.scrollTo(window.scrollX, window.scrollY + 1);

Nicht schick, aber funktioniert.

Beachten Sie, dass nur die erste Codezeile erforderlich ist. Mit der anderen Zeile können Sie den Bildlauf wieder dorthin zurückkehren. Ich musste eine Scroll-Funktion auf einer Taste auslösen. Wenn Sie zweimal auf die Schaltfläche tippen, ist der Effekt der Bildlaufleiste sichtbar und nicht besonders ausgefallen. Deshalb ziehe ich es vor, auch die zweite Codezeile hinzuzufügen.

9
Fran Cano

Alternativ können Sie ein reales scroll-Ereignis wie folgt manuell auslösen:

el.dispatchEvent(new CustomEvent('scroll'))

Das fühlt sich ein bisschen weniger hackig (und performanter) an als das duale Scrollen durch +1 und -1 Pixel ...

Dies sollte jeden Code ausführen, der auf ein scroll-Ereignis wartet.

Bearbeiten: Um IE11 oder einen anderen älteren Browser zu unterstützen, sollten Sie eine CustomEvent-Polyfill verwenden, z. B. mdn-polyfills.

9
Pandaiolo

window.scrollTo(window.scrollX, window.scrollY); funktioniert nicht für mich in Firefox . Es passiert nichts, und es scheint so zu sein, dass eigentlich kein Scrollen ausgeführt werden muss, um zu dem Ort zu gelangen, an dem Sie sich bereits befinden.

ABER window.scrollTo(window.scrollX, window.scrollY-1); arbeitet. Mit diesem Befehl wird die Ereignisfunktion window.scroll ausgelöst.

(Wenn Sie versuchen, zu betrügen, zum Beispiel: window.scrollTo(window.scrollX, window.scrollY-0) funktioniert auch nicht.)

1
user2280102

Wie alle geantwortet haben, funktioniert window.scrollTo(window.scrollX, window.scrollY); wirklich, aber in einigen Fällen sollten Sie der aktuellen Bildlaufposition des Fensters eine Nummer hinzufügen. In meinem Fall habe ich beispielsweise 1 zu meinem scrollY und hinzugefügt dann rief scrollTo Methode wie folgt auf:

window.scrollTo(window.scrollX, window.scrollY + 1);

0
Behnam Azimi

Manchmal müssen Sie das scrollElement finden. In meinem Fall ist mein scrollElement body und lauffähig auf dem Handy, daher funktioniert der folgende Code gut:

document.body.scrollTo(window.scrollX, window.scrollY + 1);

Ich hoffe es wird hilfreich sein.

0
Jerry Ni