Ich denke, ich habe einen Workaround für Sie, aber Sie müssen es versuchen, um sicher zu sein. Es funktioniert, wenn ich den Code manuell durchführe, und ich denke, es wird funktionieren. Ich werde es am Ende erklären.
Vor der Codezeile, wo Sie das masonry()
Plugin aufrufen ...
$('#grid').masonry({ columnWidth:250, itemSelector:".awallpost", animate:false, resizeable:false });
... die Höhe des Gitters auf seine aktuelle Höhe einstellen.
var $grid = $('#grid');
$grid.height($grid.height()); // fix the height at its current height
$('#grid').masonry({ columnWidth:250, itemSelector:".awallpost", animate:false, resizeable:false });
Wenn das gibt Ihnen Problem, wenn Sie zunächst laden, oder in einigen Browsern, dann versuchen, die .height()
Einstellung nur dann, wenn es größer als ein Betrag ist. Versuchen Sie 0
oder eine kleine Zahl wie 250
.
var $grid = $('#grid');
var height = $grid.height();
if(height > 0) { // or some other number
$grid.height(height);
}
$('#grid').masonry({ columnWidth:250, itemSelector:".awallpost", animate:false, resizeable:false });
Die Ursache des Problems zu sein scheint, weil masonry
die Positionierung der einzelnen Elemente zu absolute
setzt, dann geht es durch sie und setzt seine top
und left
Positionen manuell zu, was auch immer sie waren, bevor sie absolute
Positionierung erhalten.
Das Problem ist, dass bis masonry
eine Chance hat, die Positionen zu setzen, die #grid
wird, da die Elemente 0
Höhe kollabierte im Inneren nicht mehr seine Höhe beeinflussen.
Es scheint, als ob in einigen Browsern, wenn die Höhe des #grid
(und damit den Rest des Dokuments) zusammengebrochen ist, es seine Bildlaufposition vergisst. Deshalb fixieren wir seine Höhe auf einen festgelegten Wert vor Aufruf masonry()
, so dass es nicht zusammenfällt, wenn sein Inhalt absolute
Positionierung erhält.
Gibt es ein Arbeitsbeispiel, das wir besuchen können? –
': 8000' funktioniert nicht, aber die Seite weist das Problem auf - ich nehme an, du meintest nur http://geodit.com? –
Ich sehe verschiedene Verhaltensweisen. Ich kann genau dieses Problem in Chrome 8.0.552.215 reproduzieren. Firefox 3.6.12 geht einfach zurück nach oben und springt nicht zur vorherigen Auswahl, wenn Sie ein wenig blättern. IE 8.0.7600.16385 funktioniert wie erwartet (abgesehen von Layoutproblemen). – BalusC