$ (pencere) .scrollTop () ve $ (belge) .scrollTop ()


Yanıtlar:


149

İkisi de aynı etkiye sahip olacaklar .

Açıklamalarda belirttiği Ancak,: $(window).scrollTop()daha fazla web tarayıcıları tarafından desteklenmektedir daha $('html').scrollTop().


3
IE8'de 0 döndürür (sayfam tuhaf modda olmasına rağmen bir faktör oynayabilir)
Greg Ogle

38
$ ('html'). scrollTop () çapraz tarayıcı değildir (ayarlayıcı olarak en azından Chrome'da çalışmaz). Şimdilik bunu yapmanın en crossbrowser yolu: alıcı olarak $ (window) .scrollTop (), ayarlayıcı olarak $ ('html, body'). ScrollTop (offset).
Georgii Ivankin

6
Bu referansa göre , bağımsız değişkenler olmadan scrollTophiçbir yere kaydırma yapılmaz, yalnızca geçerli kaydırma konumu döndürülür.
VEYA Haritacı

3
@ d2burke scrollTop()bir alıcı ve scrollTop(value)ayarlayıcıdır. scrollTop()bağımsız değişkenler olmadan kaydırma konumunu değiştirmez.

1
@ M98 window.scrollTo (x, y)
Bodman

36

İlk olarak windowve arasındaki farkı anlamalısınız document. windowNesne bir üst düzey istemci tarafı amacıdır. windowNesnenin üstünde hiçbir şey yok . JavaScript nesne yönelimli bir dildir. Bir nesneyle başlar ve kendi özelliklerine veya nesne gruplarının özelliklerine yöntemler uygularsınız. Örneğin, documentnesne nesnenin bir windownesnesidir. Değiştirmek için documentbireyin arka plan rengini, ayarladığınız ediyorum documents ' bgcolorözelliğini.

window.document.bgcolor = "red" 

Sorunuzu cevaplamak için, windowve arasındaki sonuçta hiçbir fark yoktur document scrollTop. Her ikisi de aynı çıktıyı verecektir.

Http://jsfiddle.net/7VRvj/6/ adresindeki çalışma örneğine bakın

Genel kullanımda documentağırlıklı olayları kaydetmek ve kullanımı windowgibi şeyleri yapmak için scroll, scrollTopve resize.


Sonuçta fark yok. Her ikisi de aynı çıktıyı verecektir.
Hüseyin

Görünüşe göre, bazı tarayıcılar pencere kaydırmayı desteklemez, çünkü pencere nesnesi taşan nesne olmayabilir.
Bodman

11
Hangi tarayıcı pencereyi desteklemiyorsa, açık olun. İşte bir örnek jsfiddle.net/7VRvj/4 . Tüm tarayıcılarda kontrol edin ve hangi tarayıcıda çalışmadığını bana bildirin.
Hüseyin


0

scrollTopBurada açıklanan bazı benzer problemler yaşadım .

Sonunda selektörü kullanarak Firefox ve IE'de bu sorunu çözdüm$('*').scrollTop(0);

Etkilemek istemediğiniz öğeleriniz varsa mükemmel değil, ancak Belge, Gövde, HTML ve Pencere eşitsizliğinden kaynaklanıyor. Eğer yardımcı olursa ...


20
Asla bu şekilde * kullanmamalısınız (aslında * tamamen kullanmayın). Bir öğeyi hedeflemek yerine DOM'un tamamını etkilersiniz. Büyük performans. Seçiciler mümkün olduğunca hassas olmalıdır.
Vlad

2
Şahsen her zaman kullandım $("html,body").scrollTop(val)- hiç sorun yaşamadım
Roi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.