2012-01-19 4 views
10

Я использую ползунок jQuery для настройки заполнения текста текста абзаца DIV. По мере того как я увеличиваю заполнение со всех сторон одинаково, он должен заставить заключенные абзацы войти в более узкую колонку в центре страницы.jQuery CSS-рендеринг - работает в Firefox, а не в Chrome

Это работает в Firefox, но в Chrome ширина абзаца остается постоянной (т. Е. Они не становятся уже, когда на них накладывается прокладка DIV), поэтому нажимаем макет справа.

Я воссоздал вопрос здесь: jsfiddle.net/ms3Jd. Вы можете попробовать его в Chrome и Firefox, чтобы увидеть разницу.

Любые идеи о том, как заставить Chrome обновить прилагаемые абзацы?

+2

Похож на ошибку WebKit. – thirtydot

+0

Может быть, но я знаю, что есть способы заставить (или обмануть) Chrome обновить/перерисовать/пересчитать элементы страницы, но не знают, как это сделать. Есть идеи? – Mateo

ответ

13

Я знаю, есть способы, чтобы заставить (или трюк) Chrome для обновления/перерисовки/recalcuate элементы страниц, но не знаю, как сделать it. Есть идеи?

Взято отсюда: 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'; 

Я быстро применил его здесь, но вы должны сделать это в функцию: http://jsfiddle.net/thirtydot/ms3Jd/5/

+2

Версия плагина jQuery: http://jsfiddle.net/thirtydot/ms3Jd/7/. Может быть перебор. – thirtydot

+0

Он работает - спасибо (и другие ответчики) - вы гений! – Mateo

0

Вы можете добавить переполнение и поплавковые свойства:

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

Хммм ... это прогресс, и мы добираемся на полпути. Благодарю. Я пробовал в jsfiddle - по мере увеличения заполнения, абзацы DO пересчитывают. Но если мы снова уменьшим заполнение, они не будут расширяться снова. Можно ли еще уточнить, что вы можете предложить? – Mateo

3

Я использую fadeTo, чтобы заставить хром, чтобы обновить.
Не уверен, но я думаю, это анимация на fadeTo, что делает трюк
попробуйте эту строку на jsfiddle.

$('#preview > div').css('padding', ui.value + '%').children('p').fadeTo(1, .99).fadeTo(1, 1); 
Смежные вопросы