Ergebnis 1 bis 9 von 9
  1. #1
    -=]SquweeZ[=- ist offline Doppel-As
    registriert
    01-11-2007
    Beiträge
    114

    Crossbrowsing, offset & client

    Guten Tag allerseits.

    Nach langem Rumprobieren und Überlegen stehe ich mehr oder weniger am Ende meines Horizontes und meiner Ideen...

    Es geht darum, eine "Animation" in mehreren Browser zum Funktionieren zu bringen. So weit so gut, wäre da neben FF, SM, Chrome, Opera und Safari nicht auch noch der IE :/

    Die "Animation" besteht darin einen div-container größer bzw kleiner werden zu lassen. Damit er sich bei dieser veränderung nicht nur nach rechts unten vergrößert/links oben verkleinert wird der Abstand nach oben und links verkleinert/vergrößert.
    Anmerkung: Es wird mehr in die Höhe vergrößert als in die Breite.

    Wie aus meinem Post bis jetzt hervorgeht funktioniert es nicht im IE.

    Problem: Beim Internet Explorer beginnt in dem Moment wo die Breite den gewünschten Wert erreicht hat, die größe sich nicht mehr zu ändern, allerdings der Abstand von oben weiterhin zu verkleinern, obwohl diese beiden Änderungen mit der gleichen IF-Bedingung "kontrolliert" werden.
    PHP-Code:
            //höhe
            
    if(height 230 && this.expandation_status == 'expanding') {
                
    height += 4;
                
    top -= 2;
                
    this.object.style.height height;
                
    this.object.style.top top;
            }
    //höhe 
    Meine vorest beste Lösung für das Problem war, dass ich die Abfrage der Höhe und der Breite von clientHeight/clientWidth auf offsetHeight/offsetWidth geändert habe. Das Problem dabei ist, dass sich bei jedem Funktionsaufruf der div-container etwas nach rechts verschiebt (Jap, er hat einen Rahmen... -.-).

    Da ich mehrere div-conatainer auf die gleiche Art verarbeiten muss, ist das Ganze - mehr oder weniger - Objektorientiert (soweit es in JS möglich ist..).

    object ist ein Attribut des Objekts und ist - so zu sagen - der div-container.

    PHP-Code:
    function expand(){
            var 
    height this.object.clientHeight;
            var 
    width this.object.clientWidth;
            var 
    left this.object.offsetLeft;
            var 
    top this.object.offsetTop;


            
    //breite
            
    if(width 170 && this.expandation_status == 'expanding') {
                
    width += 2;
                
    left--;
                
    this.object.style.width width;
                
    this.object.style.left left;
            }
    //breite

            //höhe
            
    if(height 230 && this.expandation_status == 'expanding') {
                
    height += 4;
                
    top -= 2;
                
    this.object.style.height height;
                
    this.object.style.top top;
            }
    //höhe

            //bildgröße
            
    if(width <= 170) {
                
    this.object.getElementsByTagName('img')[0].style.height width;
                
    this.object.getElementsByTagName('img')[0].style.width width;
            }
    //bildgröße


            //rekursions_check
            
    if((width 170 || height 230) && this.expandation_status == 'expanding')
                
    window.setTimeout("cat_objects["+this.id+"].expand()"0);
        }
    //expand 
    Bei der Rekursion findet Ihr "cat_objects[]...", welches ein Array ist, dass die besagten Objekte speichert.

    Fehlerkonsole: Leider leer. :/

    Hoffentlich könnt ihr mir helfen,
    Martin
    Geändert von -=]SquweeZ[=- (21-07-2009 um 11:43 Uhr)

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Crossbrowsing, offset & client

    Was machst du da?
    //bildgröße
    if(width <= 170) {
    this.object.getElementsByTagName('img')[0].style.height = width;
    this.object.getElementsByTagName('img')[0].style.width = width;
    }//bildgröße
    Hast du einen Testlink? HTML?

    PS: diese CSS-Eigenschaften erwarten eigentlich alle eine Einheit!

  3. #3
    -=]SquweeZ[=- ist offline Doppel-As
    registriert
    01-11-2007
    Beiträge
    114

    AW: Crossbrowsing, offset & client

    Testlink: http://squweez.sq.funpic.de/ca/index.html

    Die Bildgröße ist in keinem Browser ein Problem...

    siehs dir einfach im Firefox an, und anschließend im IE, dann wirst du sehn, wie schön divs davonfliegen können xD

    Woran das liegt weiß ich eben nicht,..

    Der erste Codesnip ist der einzige wo top negativ verändert wird (gibt das Gegenteil (bei mouse-out) wo top positiv verändert wird..)

    Danke für die Hilfe,
    Martin

  4. #4
    -=]SquweeZ[=- ist offline Doppel-As
    registriert
    01-11-2007
    Beiträge
    114

    AW: Crossbrowsing, offset & client

    Hab nun mittels einem Popup mir die Werte height und top ausgeben lassen.

    Das ergebnis weicht natürlich im IE vom FF/Opera ab. (Aus Zeitgründen spar ich mir hier Chrome & Safari) Da der IE aus der Rekursion nicht rauskommt, musste ich das Popup während dieser aufrufen.

    So und jetzt zu den Ergebnissen:
    Code:
    Firefox/Opera
    Height: 104px Top: 225
    ,Height: 108px Top: 223
    ,Height: 112px Top: 221
    ...
    ...
    ,Height: 172px Top: 191
    ,Height: 176px Top: 189
    ,Height: 180px Top: 187
    ...
    ...
    ,Height: 224px Top: 165
    ,Height: 228px Top: 163
    ,Height: 232px Top: 161
    Code:
    Internet Explorer
    Height: 104px Top: 225
    ,Height: 106px Top: 223
    ,Height: 108px Top: 221
    ...
    ...
    ,Height: 170px Top: 159
    ,Height: 172px Top: 157
    ,Height: 174px Top: 155
    ,Height: 174px Top: 153
    ,Height: 174px Top: 151
    ,Height: 174px Top: 149
    ,Height: 174px Top: 147
    ,Height: 174px Top: 141
    Was mir sofort aufgefallen ist, ist dass der IE nur +2 Pro durchlauf macht, was daran liegt, dass ich mit clientHeight abfrage.

    Viel schlauer machen mich diese Ergebnisse aber auch nicht. Das einzige was ich jetzt weiß, ist, dass im IE 7 & 8 window.open nicht funktioniert...

    Hab ihr vielleicht eine Idee?

    e: Hab das ganze nun mit px-Angaben versucht... keine Änderung.
    e2: Hab nun die komplette Ausgabe (außer IE (da die endlos wäre)) angehängt.

    Hoffe ich/wir lösen bald das Problem,
    Martin
    Angehängte Dateien Angehängte Dateien
    • Dateityp: txt ie.txt (1.022 Bytes, 0x aufgerufen)
    • Dateityp: txt ff.txt (874 Bytes, 0x aufgerufen)
    • Dateityp: txt opera.txt (822 Bytes, 0x aufgerufen)
    Geändert von -=]SquweeZ[=- (22-07-2009 um 11:41 Uhr)

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Crossbrowsing, offset & client

    Wieso liest du nicht style.height mit einem parseInt aus?

  6. #6
    -=]SquweeZ[=- ist offline Doppel-As
    registriert
    01-11-2007
    Beiträge
    114

    AW: Crossbrowsing, offset & client

    Hab ich eben probiert. Resultat: NaN

    Wenn ich mir style.height mittels alert ausgeben, bekommen ich '' als String, obwohl das eigentlich per CSS gesetzt ist.

    e: Das mit NaN hab ich jetzt so gelöst, dass ich im Constructor der Klasse einfach this.object.style.height = 100 und das gleiche auch für width gesetzt hab.
    Resultat: Ich lächelnd bis über beide Ohren und 8 verschiedene Browser, in denen ich es bis jetzt getestet habe, und wo es funktioniert hat (FF, SM, Opera, Chrome, Safari, IE8, IE7, IE6).

    Danke für die Hilfe !
    Martin
    Geändert von -=]SquweeZ[=- (22-07-2009 um 13:40 Uhr)

  7. #7
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Crossbrowsing, offset & client

    Zitat Zitat von -=]SquweeZ[=- Beitrag anzeigen
    e: Das mit NaN hab ich jetzt so gelöst, dass ich im Constructor der Klasse einfach this.object.style.height = 100 und das gleiche auch für width gesetzt hab.
    Resultat: Ich lächelnd bis über beide Ohren und 8 verschiedene Browser, in denen ich es bis jetzt getestet habe, und wo es funktioniert hat (FF, SM, Opera, Chrome, Safari, IE8, IE7, IE6).
    Lass dir die Seite mal im Standard Modus anzeigen, anstatt dem nicht empfehlenswerten Quirksmodus den du verwendest.

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Crossbrowsing, offset & client

    Und das mit den Einheiten gilt immer noch.

  9. #9
    -=]SquweeZ[=- ist offline Doppel-As
    registriert
    01-11-2007
    Beiträge
    114

    AW: Crossbrowsing, offset & client

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Lass dir die Seite mal im Standard Modus anzeigen, anstatt dem nicht empfehlenswerten Quirksmodus den du verwendest.
    Was ist bitte der Quirksmodus und wie stell ich den aus? Websitestyle: Default is wohl nicht der Standardmodus...

    Jap, das mit den px hab ich eh im Code, und lediglich im Post vergessen.

    e: Da hab ich mir wohl selbst ein Ei gelegt xD... der Quirksmode.. hab jz Strict als dtd.. thx fürs hinweisen
    Geändert von -=]SquweeZ[=- (23-07-2009 um 10:03 Uhr)

Ähnliche Themen

  1. undefined offset
    Von planet4 im Forum Serverseitige Programmierung
    Antworten: 10
    Letzter Beitrag: 04-10-2007, 07:30
  2. Offset im Bezug aufs Haupt-Div
    Von Spiritmonger im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 11-06-2007, 18:24
  3. Antworten: 1
    Letzter Beitrag: 15-05-2006, 19:30
  4. PHPmyAdmin als Client?
    Von brainshock im Forum Tools und Programme
    Antworten: 4
    Letzter Beitrag: 01-03-2006, 14:06
  5. MouseXY Hilfe bei Scrollleisten Offset
    Von defcon5 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 21-06-2005, 12:08

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •