Kraft-dom neu laden/Größe ändern in Javascript
Habe ich eine sidebar in meiner app, dass kann versteckt werden,/dargestellt, die über einen toggle-button. Es schaltet einfach eine Klasse auf "Körper" , fügt einige Rand Links zu den content-Bereich und blendet die Seitenleiste ein. Problem ist, dass der content-Bereich ist nicht der Größenänderung Ihr Kind von Inhalten, wenn diese aktiviert ist. Sobald ich passen Sie die Größe des browser, der content-Bereich passt sich automatisch an den Inhalt, aber ich muss es tun dies nach dem Umschalten, ohne die Notwendigkeit, um die Größe der Fenster. Gibt es eine Möglichkeit, trigger die Größe eines Elements aktualisieren oder dom aktualisieren, um dieses Problem zu lösen? Mit Chrome 19.x.
$('#sidebar-toggle').click(function(event) {
event.preventDefault();
$('body').toggleClass('with-sidebar-left');
});
Edit: Scheint, wie es könnte ein Webkit-Problem. Funktioniert einwandfrei in Firefox.
Edit 2: einrichten eine vereinfachte bauen am folgenden Speicherort:
https://dl.dropbox.com/u/189605/misc/build-test/grid.html
Können Sie sehen die Boxen float: left, und wenn Sie minimieren die sidebar mit den kleinen Pfeil-button, es sollte passen rechts, so dass mehr Boxen passen. In Webkit, müssen Sie die Größe des Browsers für es zu erkennen, es hat mehr Platz. Funktioniert in Firefox.
Sind Sie sicher, dass
$('sidebar-toggle')
ist die richtige? Vielleicht sollte $('#sidebar-toggle')
statt?ja, es sollte, aber das ist nicht das Problem. typo.
Ich habe gesehen, etwas ähnliches aber nur in chrome, wobei die repaint-Motor muss eingestellt werden, aber das ist auch nur, wenn Sie die Verwendung von Transformationen in css
hier ein paar links: stackoverflow.com/questions/4641522/... stackoverflow.com/questions/8840580/...
InformationsquelleAutor typeoneerror | 2012-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den workaround von meine Antwort hier funktioniert für Ihre situation.
Hier ist eine kurze demo: http://jsbin.com/amakex
Funktioniert es in Chrome und Safari (nicht überraschend, ist Ihre ursprüngliche demo auch nicht funktioniert in Safari).
InformationsquelleAutor thirtydot
konnte man nur trigger eine Größe im click-handler, z.B.:
Hat keine Wirkung, leider. Das war das erste, was ich versucht habe.
wenn es mehrere listener-Funktionen, dann ist es besser, um das Ereignis auszulösen. Auf diese Weise werden Sie alle Feuer.
Oh Mann, ich hoffe wirklich, dass es nicht mehrere
onresize
Zuhörer 🙂InformationsquelleAutor billythetalented
sagte Sie-"aber ich muss es tun dies nach dem Umschalten, ohne die Notwendigkeit, um die Größe der Fenster".Sie können die jquery-callback zu tun, dass
InformationsquelleAutor Ash