2010-11-16 28 views
57

Estoy tratando de establecer la posición de desplazamiento en una página para que la rueda de desplazamiento se desplace hasta la parte superior.Establecer la posición de desplazamiento

Creo que necesito algo como esto, pero no está funcionando:

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

¿Alguna idea?

Respuesta

108

Puede utilizar window.scrollTo(), así:

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

muchas gracias – yussan

33

También digno de mención window.scrollBy(dx,dy) (ref)

+0

Esto fue extremadamente útil – Jeff82

6

Tenga en cuenta que si desea desplazarse un elemento en lugar de la ventana completa, los elementos no tienen los métodos scrollTo y scrollBy. Usted debe:

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; 

También puede imitar los window.scrollTo y window.scrollBy funciones a todos los elementos HTML existant en la página web:

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 
}); 

por lo que puede hacer:

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); 

NOTA: Se recomienda Object.defineProperty, ya que agregar propiedades directamente al prototype es una mala costumbre (cuando lo ves :-).

Cuestiones relacionadas