Ahoi! Ich habe ein kleines Skript erstellt, um die Größe des linken Randes beim Laden der Seite zu überprüfen, die Größe eines div dort zu ändern, um es zu füllen, und den Header div so zu ändern, dass er daneben schwebt.Inkonsistente jQuery-Funktion beim Ändern der Größe von Elementen beim Laden der Seite
Hier ist der Code:
function buildHeader() {
var containerMarginLeft = $(".container_16:not(:first)").css("margin-left");
var headerHeight = $("#header").height();
$("#stripe").width(containerMarginLeft).height(headerHeight).css("float", "left");
$(".container_16:first").css("float", "left");
$("#header").css("margin-left", 0).width(950);
}
$(document).ready(function(){
// Manipulate layout for the first time
buildHeader();
// Manipulate layout when window is resized
var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(buildHeader, 100);
});
});
Und die Demonstration ist hier: http://robertmay.me.uk/mockups/plane.html (es schafft die Zeile, die auf der linken Seite erstreckt). Jetzt funktioniert es in Webkit-Browsern. Es funktioniert nicht in Mozilla, und ich habe es nicht einmal in IE versucht. Hat jemand irgendwelche Ideen, warum es in Mozilla nicht zu funktionieren scheint? Ich habe das Gefühl, dass es etwas mit dem CSS zu tun haben könnte.
In Firefox 3.0 ist die Zeile etwas zu kurz verglichen mit den Ergebnissen in Safari 4.0, wo die Zeile ganz nach rechts geht. Also, was ist deine Frage konkret? Suchen Sie nach einem Workaround? oder nur die Überprüfung des von Ihnen erwähnten Verhaltens? Sie könnten versuchen, eine Mischung aus einem Bild schwebte nach rechts und einem Hintergrundbild und bete, dass sie sich richten ... –
Ah ha, so dass es in Firefox 3 unter Windows funktioniert? Es ist nicht auf der Mac-Version. Ich habe gesehen, was du beschreibst und es ist kein großes Problem, es ist aus irgendeinem Grund etwa 50 Pixel zu kurz. Irgendeine Idee warum? Auf dem Mac FF3 ist das Zeilen-Div nicht vorhanden, der Header schwebt gerade nach links. – robotmay
Ich habe einen Blick auf Firebug geworfen, und in FF3 für Mac gibt es dem Stripe div keine richtige Breite, es ist auf 0px eingestellt. Irgendwelche Ideen? – robotmay