2012-01-19 21 views
10

Estoy usando un control deslizante jQuery para ajustar el relleno de un DIV que contiene texto de párrafo. A medida que aumento el relleno en todos los lados por igual, debe forzar los párrafos encerrados en una columna cada vez más estrecha, en el centro de la página.jQuery CSS rendering - funciona en Firefox, no en Chrome

Esto funciona en Firefox, pero en Chrome los anchos de los párrafos permanecen constantes (es decir, no se vuelven más angostos a medida que el acolchado del DIV los empuja), empujando el diseño hacia la derecha.

He vuelto a crear el problema aquí: jsfiddle.net/ms3Jd. Puedes probarlo en Chrome y Firefox para ver la diferencia.

¿Alguna idea sobre cómo forzar a Chrome a actualizar los párrafos adjuntos?

+2

Parece un error de WebKit para mí. – thirtydot

+0

Podría ser, pero sé que hay formas de forzar (o engañar) a Chrome para actualizar/redibujar/recalcular los elementos de página, pero no sé cómo hacerlo. ¿Algunas ideas? – Mateo

Respuesta

13

Sé que hay maneras de forzar (o truco) Chrome para actualización/dibujar/recalcuate los elementos de la página, pero no saben cómo hacer él. ¿Algunas ideas?

Tomado de aquí: How can I force WebKit to redraw/repaint to propagate style changes?

sel.style.display='none'; 
sel.offsetHeight; // no need to store this anywhere, the reference is enough 
sel.style.display='block'; 

que se aplica de forma rápida aquí, pero debe hacerlo en una función: http://jsfiddle.net/thirtydot/ms3Jd/5/

+2

Una versión del complemento jQuery: http://jsfiddle.net/thirtydot/ms3Jd/7/. Podría ser exagerado ... – thirtydot

+0

Funciona - gracias (y otros que responden) - ¡eres un genio! – Mateo

0

Puede añadir el desbordamiento y el flotador propiedades:

#preview > div { 
    padding: 5%; 
    overflow: auto; 
    float: left; 
} 
+0

Hmmm ... eso es progreso, y nos lleva a la mitad del camino. Gracias. Intenté entrar en jsfiddle - a medida que aumentamos el relleno, los párrafos HACEMOS volver a calcular. Pero si luego disminuimos el relleno de nuevo, no se ensanchan nuevamente. ¿Algún refinamiento adicional que puedas ofrecer? – Mateo

3

estoy usando fadeTo a la fuerza de cromo para refrescar.
No estoy seguro pero supongo que es el animado en fadeTo que hace el truco
intente esa línea en jsfiddle.

$('#preview > div').css('padding', ui.value + '%').children('p').fadeTo(1, .99).fadeTo(1, 1); 
Cuestiones relacionadas