it-swarm.dev

Kaydırma olmadan bir olay açıkken nasıl tetiklenir

sorum şu: On scroll olayını nasıl tetikleyebilirim (taklit edebilirim ya da esle bir şey). Özel durumumda, LinkedIn'deki tüm Korumaları tüm korumaları alt ederek yüklemek istemiyorum, çünkü çok fazla var! 

PHP veya Javascript çözümüne ihtiyacım yok. Amaçımı elde etmek için basitçe chrome'da dev-tools kullanmak yeterlidir.

11
CTSchmidt

Bir Javascript çözümüne kesinlikle ihtiyacınız var. Etkinliği dinleyen/tetikleyen başka ne yapacak, sizce?

Eğer bir kaydırma olayı ateş istiyorsanız, kelimenin tam anlamıyla bulunduğunuz yere ilerleyin ve dev araçlar konsolunuza window.scrollTo(window.scrollX, window.scrollY); yazarak. Alternatif olarak, CustomEvent ve dispatchEvent function kombinasyonunu kullanarak birini taklit edebilirsiniz.

Bir kaydırma olayında bir şeyi tetiklemek istiyorsanız, window.addEventListener("scroll", function(evt) { ... }); işlevini kullanarak kaydırmaları dinleyin ve işlem yapmanız gerekeni yapın.

Bu Chrome veya Firefox'ta çalışmıyor

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

Bu her ikisinde de çalışır:

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

Süslü değil, işe yarıyor.

Sadece ilk kod satırının gerekli olduğunu unutmayın, diğeri sadece kaydırma çubuğunu olduğu yere geri döndürmek içindir. Bir düğme üzerinde kaydırma işlevini tetiklemek zorunda kaldım. Düğmeye iki kez dokunursanız, kaydırma işleminin etkisi görülür ve çok süslü değildir. Bu yüzden 2. kod satırını da eklemeyi tercih ediyorum.

9
Fran Cano

Alternatif olarak, aşağıdaki gibi gerçek bir scroll olayı el ile tetikleyebilirsiniz:

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

Bu, +1 ve -1 pikselleriyle ikili kaydırmaya göre biraz daha az kesmek (ve daha fazla performans) hisseder ...

Bu scroll olayı dinleyen herhangi bir kod parçasını çalıştırmalıdır.

Düzenleme: IE11 veya diğer eski tarayıcıları desteklemek için mdn-polyfills gibi bir CustomEvent polyfill kullanmayı düşünün

9
Pandaiolo

Firefox'ta window.scrollTo(window.scrollX, window.scrollY); benim için çalışmıyor .. __ Hiçbir şey olmuyor ve aslında zaten bulunduğunuz yere gitmek için hiçbir kaydırma yapılmasına gerek yok.

AMA window.scrollTo(window.scrollX, window.scrollY-1); çalışıyor. Bu komutla, window.scroll olay işlevi ateşlenir.

(Örneğin, hile yapmaya çalışıyorum: window.scrollTo(window.scrollX, window.scrollY-0) da çalışmıyor.)

1
user2280102

Herkes cevap verirken window.scrollTo(window.scrollX, window.scrollY); gerçekten işe yarıyor ama bazı durumlarda, pencerelerin geçerli kaydırma konumuna bir sayı eklemelisiniz, örneğin benim durumumda 1 'yi scrollY'ye ekledim ve sonra şöyle scrollTo yöntemini çağırdım: 

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

0
Behnam Azimi

Bazen scrollElement öğesini bulmanız gerekir. Benim durumumda scrollElement'ım gövdeli ve mobilde çalışıyor, bu nedenle aşağıdaki kod iyi çalışıyor:

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

Umarım yardımcı olacaktır.

0
Jerry Ni