2010-11-16 14 views
57

Kaydırma konumunu bir sayfada ayarlamaya çalışıyorum, böylece kaydırıcı tamamen yukarı doğru kayar.Kaydırma pozisyonunu ayarlama

(function() { alert('hello'); document.body.scrollTop = 0; }()); 

Herhangi bir fikir:

Ben böyle bir şey gerek ama işe yaramıyor düşünüyorsun?

cevap

108

Bunu, window.scrollTo() kullanabilirsiniz:

Ayrıca
window.scrollTo(0, 0); // values are x,y-offset 
+0

thank you verymuch – yussan

33

yerine tam pencereye unsurunu kaydırmak istiyorsanız, elementler olmadığını window.scrollBy(dx,dy) (ref)

+0

Bu çok yardımcı oldu – Jeff82

6

Not kayda değer scrollTo ve scrollBy yöntemleri. Sen yapmalıdır:

Object.defineProperty(HTMLElement.prototype, "scrollTo", { 
    value: function(x, y) { 
     el.scrollTop = y; 
     el.scrollLeft = x; 
    }, 
    enumerable: false 
}); 

Object.defineProperty(HTMLElement.prototype, "scrollBy", { 
    value: function(x, y) { 
     el.scrollTop += y; 
     el.scrollLeft += x; 
    }, 
    enumerable: false 
}); 

böylece yapabilirsiniz::

var el = document.getElementById("myel"); // Or whatever method to get the element, again 

// To set the scroll 
el.scrollTo(0, 0); 

// To increment the scroll 
el.scrollBy(100, 100); 

NOT

var el = document.getElementById("myel"); // Or whatever method to get the element 

// To set the scroll 
el.scrollTop = 0; 
el.scrollLeft = 0; 

// To increment the scroll 
el.scrollTop += 100; 
el.scrollLeft += 100; 

Ayrıca web sayfasındaki tüm kayıtlarınız HTML öğelerine window.scrollTo ve window.scrollBy fonksiyonlarını taklit edebilir: Object.defineProperty, prototype'un özelliklerinin doğrudan eklenmesi kötü bir alışkanlık haline geldiği için teşvik edilir (Gördüğünüzde :-).

İlgili konular