Ist $ (document) .ready () auch CSS ready?

Habe ich ein Skript ausführen, die auf $(document).ready (), die eigentlich vertikal ausrichten block-element in meinem layout. 90% der Zeit, funktioniert es ohne Problem. Doch für das extra-10 - % eines von zwei Dingen geschieht:

  • Gibt es eine offensichtliche Verzögerung in der Zeit, die es braucht, um die Zentrierung und die block-Elemente springen in position. Dies könnte einfach sein, die performance bezogen - als die Seitengröße ist oft groß und es gibt eine ganze Menge von javascript, das ausgeführt wird, auf einmal.

  • Die Zentrierung wird völlig Durcheinander, und das block-element wird entweder nach unten gedrückt zu weit oder nicht weit genug. Es scheint, als ob es versucht, die Berechnung der Höhe, aber war immer unsachgemäße Messungen.

Gibt es einen Grund, warum ein Skript ausführt, das auf DOM-ready würde nicht alle haben die richtige CSS-Werte Injektion in den DOM noch? (die CSS ist in der <head> über eine <link>).

Auch hier ist das Skript, das den Fehler verursacht hat (ja, es ist schon gerade von hier):

 (function ($) {
    //VERTICALLY ALIGN FUNCTION
    $.fn.vAlign = function() {
      return this.each(function(i) {
        var ah = $(this).height();
        var ph = $(this).parent().height();
        var mh = (ph - ah) / 2;
        $(this).css('margin-top', mh);
      });
    };
  })(jQuery);

Dank.

InformationsquelleAutor der Frage Bryan M. | 2009-08-24

Schreibe einen Kommentar