2010-03-18 4 views
15

Tengo un HTML que tiene mucho contenido y una barra de desplazamiento vertical aparece tan pronto como se carga el HTML. Ahora desde este HTML, se carga un IFRAME de pantalla completa. El problema es que cuando se carga el IFRAME, la barra de desplazamiento principal aún persiste, quiero desactivar la barra de desplazamiento cuando se carga el Iframe.Cómo deshabilitar el desplazamiento del cuerpo del documento?

me trataron:

  • document.body.scroll = "no", que no funcionó con FF y cromo.
  • document.style.overflow = "hidden"; después de esto todavía podía desplazarme, y todo el iframe se desplazaría hacia arriba para revelar el HTML padre.

Mi requisito es que, cuando se carga el IFRAME, nunca deberíamos ser capaces de desplazar todo el IFRAME si el HTML padre tiene una barra de desplazamiento.

¿Alguna idea?

Respuesta

22

Si desea utilizar la barra de desplazamiento del marco flotante y no el uso de la matriz siguiente:

document.body.style.overflow = 'hidden'; 

Si desea utilizar la barra de desplazamiento de los padres y no del marco flotante entonces es necesario utilizar:

document.getElementById('your_iframes_id').scrolling = 'no'; 

o establezca el atributo scrolling="no" en la etiqueta de su iframe: <iframe src="some_url" scrolling="no">.

+0

Excepto por favor haga esto en una hoja de estilo y no en Javascript :-) – Pointy

+0

De acuerdo. Buen punto. – ntownsend

+0

Gracias por las entradas. Lo estaba haciendo mal, funciona como se explicó. – Manohar

5

El siguiente JavaScript podría funcionar:

var page = $doc.getElementsByTagName('body')[0]; 

Para desactivar el desplazamiento Use:

page.classList.add('noscroll'); 

Para habilitar desfile Usar:

page.classList.remove('noscroll'); 

En el archivo CSS, añadir:

.noscroll { 
    position: fixed!important 
} 
+1

posición: fijo; fue la solución en mi caso – StackHola

+0

Tenga en cuenta que al usar la posición: fija, la posición de desplazamiento del cuerpo se moverá a la parte superior que puede desconcertar –

-3

Respuesta: document.body.scroll = 'no';

+3

Esto solo funciona para IE, por lo que no se recomienda para un proyecto. – Leonard

6

con CSS

body,html{ 
    overflow:hidden 
} 
2

agregar este css

body.disable-scroll { 
    overflow: hidden; 
} 

y cuándo desactivar ejecutar este código

$("body").addClass("disable-scroll"); 

y cuándo permitido ejecutar este código

$("body").removeClass("disable-scroll") 
Cuestiones relacionadas