2012-05-24 28 views
62
<div id="containerDiv"></div> 
#containerDiv { 
    position: absolute; 
    top: 0px; 
    width: 400px; 
    height: 100%; 
    padding: 5px; 
    font-size: .875em; 
    overflow-y: scroll; 
} 
document.getElementById("containerDiv").innerHTML = variableLongText; 

Cómo restablecer la posición de desplazamiento de nuevo a la parte superior del contenedor div la próxima vez?de desplazamiento de nuevo a la parte superior del div

Respuesta

105
var myDiv = document.getElementById('containerDiv'); 
myDiv.innerHTML = variableLongText; 
myDiv.scrollTop = 0; 

Ver el atributo scrollTop.

+0

Intenté pero no funcionó. Cuando se carga una variableLongtext en el contenedor div y miro en el centro de ella, luego deslícese hacia la nueva variableLongtext, aparecerá en el contenedor, pero no miraremos en la parte superior, ya se desplazará un poco abajo. – imhere

+0

@ s12345 Es mejor que haga un caso de prueba reproducible mostrándonos su problema (por ejemplo, en http://jsfiddle.net) y diga en qué SO/navegador/versión está experimentando esto. – Phrogz

+1

Disculpe mi error ... ¡funciona! Se confundió con dos divs similares. – imhere

50

Otra forma de hacerlo con una animación suave es como esto

$("#containerDiv").animate({ scrollTop: 0 }, "fast"); 
+6

Funciona bien, pero ** por favor ** no use 'slow', es tan ... ¡lento! – Pascal

+1

En lugar de pasar 'slow' como segundo argumento. Puede pasar un número entero que sería el número de milisegundos para completar la animación. –

+0

Esta es la mejor forma que Iv ha encontrado hasta ahora. Se ve bien con el segundo arg establecido en 'rápido', 1000 o 500. – ekerner

18

probé las respuestas existentes para esta pregunta, y ninguno de ellos trabajaron en Chrome para mí. Lo que hizo el trabajo era ligeramente diferente:

$('body, html, #containerDiv').scrollTop(0); 
0

Para mí la forma scrollTop no funcionaba, pero he encontrado otra:

element.style.display = 'none'; 
setTimeout(function() { element.style.display = 'block' }, 100); 

No controló el tiempo mínimo para la representación css fiable sin embargo, 100ms podrían ser excesivo

8

scrollTo

window.scrollTo(0, 0); 

es la solución definitiva para el desplazamiento de las ventanas a la parte superior - la mejor parte es que no requiere ningún selector de ID e incluso si usamos la estructura IFRAME que va a funcionar muy bien.

El método scrollTo() desplaza el documento a las coordenadas especificadas.
window.scrollTo (xpos, ypos);
xpos Número requerido. Las coordenadas para desplazarse, a lo largo del eje x (horizontal), en píxeles
ypos Número requerido. La coordenada para desplazarse a lo largo del eje Y (vertical), en píxeles

jQuery

Otra opción para hacer lo mismo está usando jQuery y se le dará un aspecto más suave para el mismo

$('html,body').animate({scrollTop: 0}, 100); 

donde 0 después de scrollTop especifica la posición vertical de la barra de desplazamiento en el píxel y el segundo parámetro es un parámetro opcional que muestra el tiempo en microsegundos para completar la tarea.

5

Para aquellos que todavía no pueden hacer esto, asegúrese de que se muestre el elemento desbordado antes de usar la función jQuery.

Ejemplo:

$('#elem').show(); 
$('#elem').scrollTop(0); 
+0

¡Ahorro de vida! Estaba empezando a perder la voluntad de vivir con scrollTop no funcionaba! tuve que poner mi llamada scrollTop en una función setTimeout. –

1

Si el desbordamiento de contenido HTML de una única ventana, esto funcionó para mí usando sólo javascript:

document.getElementsByTagName('body')[0].scrollTop = 0; 

Saludos,

0

Esto funcionó para mí:

document.getElementById('yourDivID').scrollIntoView(); 
0

Si desea desplazarse con una transición suave, ¡podría usar esto!

(vainilla JS)

const tabScroll = document.getElementById("tabScroll"); 
window.scrollTo({ 
    'behavior': 'smooth', 
    'left': 0, 
    'top': tabScroll.offsetTop - 80 
}); 

Si los usuarios de destino son Chrome y Firefox, entonces este es bueno! Pero lamentablemente este método no es lo suficientemente compatible en todos los navegadores. Check Here

Hope this helps !!

Cuestiones relacionadas