2012-01-19 13 views
10

Używam suwaka jQuery do dopasowania dopełnienia tekstu akapitowego zawierającego DIV. Gdy zwiększam wypełnienie równomiernie ze wszystkich stron, powinien wymusić załączone akapity w coraz węższej kolumnie na środku strony.renderowanie CSS jQuery - działa w przeglądarce Firefox, a nie w Chrome

Działa to w przeglądarce Firefox, ale w Chrome szerokość akapitów pozostaje stała (tzn. Nie stają się one węższe w miarę wciskania przez DIV), więc przesuwając układ w prawo.

Odtworzyłem ten problem tutaj: jsfiddle.net/ms3Jd. Możesz wypróbować to w Chrome i Firefox, by zobaczyć różnicę.

Jakieś pomysły, jak zmusić Chrome do odświeżenia załączonych akapitów?

+2

Wygląda jak błąd WebKit. – thirtydot

+0

Może być - ale wiem, że istnieją sposoby na wymuszenie (lub oszukiwanie) Chrome, aby odświeżyć/przerysować/ponownie wyliczyć elementy strony, ale nie wiem, jak to zrobić. Jakieś pomysły? – Mateo

Odpowiedz

13

wiem, że istnieją sposoby, aby siły (lub podstęp) Chrome odświeżania/przerysować/recalcuate elementy strony, ale nie wiem jak to zrobić go. Jakieś pomysły?

Zrobione stąd: 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'; 

szybko go zastosowano tutaj, ale należy zrobić to do funkcji: http://jsfiddle.net/thirtydot/ms3Jd/5/

+2

Wersja wtyczki jQuery: http://jsfiddle.net/thirtydot/ms3Jd/7/. Może być przesada .. – thirtydot

+0

Działa - dziękuję (i inni odznaczeni) - jesteście geniuszem! – Mateo

0

można dodać przepełnienie i unoszą nieruchomości:

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

Hmmm ... to jest postęp i prowadzi nas w połowie drogi. Dzięki. Próbowałem w jsfiddle - gdy zwiększamy dopełnienie, akapity DO przeliczają się ponownie. Ale jeśli ponownie zmniejszymy wypełnienie, nie powiększy się ponownie. Jakieś dalsze udoskonalenia, które możesz zaoferować? – Mateo

3

Używam fadeTo zmusić chrom, aby odświeżyć.
Nie jestem pewien, ale myślę, że to ożywione na fadeTo że robi trick
spróbować tej linii na jsfiddle.

$('#preview > div').css('padding', ui.value + '%').children('p').fadeTo(1, .99).fadeTo(1, 1); 
Powiązane problemy