netsurfer: jQuery addClass - neue Elementabmessungen

Beitrag lesen

@Raoul

Kein schlechter Gedanke, aber das wird nicht verlässlich funktionieren. Wenn man mit JavaScript eine HTML-Klasse vergibt, dann unternimmt der Browser sofort einen blockierenden Reflow.

So dachte ich bisher auch. Scheint aber in meinem Fall (durch die per JS zugewiesene Klasse erhält das betreffende Element einen Multi-Column Style) nicht so zu sein. Der Browser braucht anscheinend für eine gewisse Zeit für die Berechnung und Umsetzung (ohne zwischenzeitliche Blockade).

Ich vermute, dass du die Klassenzuweisung und das Auslesen der Abmessungen nicht in einem Run-To-Completion-Codeblock ausführst, sondern verteilt über asynchrone Funktionsaufrufe hinweg.

Dass ich das nicht tue/ getan habe, haben wir ja inzwischen gesehen. Ich frage mich gerade, wie es denn überhaupt möglich ist, dass dann bei

var scrollParent = $('#outer');
var scrollElement = $('#inner');
var baseHeight = scrollParent.prop('clientHeight');
var scrolledHeight = scrollElement.prop('scrollHeight');
var baseWidth = scrollElement.width();

if(scrolledHeight > baseHeight) {
	scrollParent.addClass('scroll');
	var scrolledWidth = scrollElement.prop('scrollWidth');
	console.log("baseWidth: " + baseWidth);
	console.log("scrolledWidth: " + scrolledWidth);
}

nicht das korrekte Ergebnis für scrolledWidth rauskommen kann?

Das ist mir im Moment zumindest ziemlich schleierhaft. hast du eine Idee und könntest mir zu besserem Verständnis verhelfen?

Besten Dank im Voraus.

Gruß Gunther

0 48

jQuery addClass - neue Elementabmessungen

netsurfer
  • css
  • javascript
  • jquery
  1. 0
    Camping_RIDER
    1. 1
      1unitedpower
      1. 0
        netsurfer
        1. 0
          1unitedpower
          1. 0
            netsurfer
            1. 0
              Matthias Apsel
              1. 0
                Gunnar Bittersmann
            2. 0
              Gunnar Bittersmann
              1. 0
                netsurfer
                1. 1
                  Gunnar Bittersmann
                  1. 0
                    netsurfer
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Gunnar Bittersmann
                      2. 0
                        netsurfer
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            netsurfer
                          2. 0
                            Gunnar Bittersmann
                            1. 0
                              netsurfer
                            2. 0
                              Gunnar Bittersmann
                              1. 0
                                netsurfer
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    netsurfer
                                    1. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        netsurfer
                                        1. 0
                                          Gunnar Bittersmann
            3. 0
              1unitedpower
              1. 0
                netsurfer
                1. 0
                  1unitedpower
                  1. 0
                    netsurfer
                    1. 1
                      Camping_RIDER
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          Camping_RIDER
                          1. 0
                            Gunnar Bittersmann
                            1. 0
                              Camping_RIDER
                              1. 0
                                netsurfer
          2. 0
            netsurfer
            1. 0
              Camping_RIDER
              1. 0
                netsurfer
                1. 0
                  1unitedpower
                2. 0
                  unknown
                  1. 0
                    unknown
                    1. 0
                      netsurfer
  2. 0
    Mitleser
  3. 0

    Fiddle jQuery addClass - neue Elementabmessungen

    netsurfer
  4. 0

    [Erledigt] jQuery addClass - neue Elementabmessungen

    netsurfer
    1. 0
      Camping_RIDER
    2. 0
      unknown