2010-12-08 6 views
0

Ich habe vor kurzem ein Mootols-Skript für meine Website erstellt. Mit Fx.Morph habe ich erfolgreich die Effekte erzeugt, die ich anstrebte. Das Skript schlägt jedoch in Internet Explorer 7 und 8 fehl (funktioniert in 9, hat IE6 nicht überprüft). Ich benutze mootools 1.2.5.Mootools 1.2.5 Element.setStyle/Morph

das Problem Ausgraben, ich folgendes

  • herausfinden konnte meine Probleme aus Fx.Morph Alle kommen, die setStyle
  • Irgendwie mit ungültigen Werten ruft, während Höhe von 0px eines Elements Morphing zu 160px, setStyle mit einem negativen Wert (wie -3px) < genannt wird ---- das ist, wo also ein Fehler

Vorerst wirft, habe ich den Fehler „geflickt“, indem Sie die folgenden in der setStyle Funktion des Mootools-Kerns:

Hat jemand mehr Informationen zu diesem Thema oder ein ähnliches Problem?

+0

Bitte teilen Sie den Morph-Code oder noch besser, gehen Sie zu www.jsfiddle.net und bauen Sie ein funktionierendes Beispiel, das bricht. aus der Erfahrung, IE wirft einen wackeligen, wenn es die falsche Art von Wert für die falsche Eigenschaft, was Sie zuverlässig überprüfen können, wenn Sie sagen, tun 'element.setStyle (" scroll "," none ");', die auf andere funktioniert Browser. eine negative Höhe in IE zu haben klingt nach einer schlechten Sache. FYI, das war auch ein Problem in jquery - http://bugs.jquery.com/ticket/5588 - Baue den Testfall und ich werde sehen, was ich tun kann –

Antwort

0

Es scheint wie Morph ist es egal, wenn es SetStyle mit ungültigen Eigenschaft/Wert Combo aufgerufen wird und SetStyle ist es nicht egal, ob es einen ungültigen Wert für eine angegebene Eigenschaft festlegen wird.

In diesem Sinne kam mein Problem von der Wirkung, die ich verwendete. Ich benutzte etwas wie "Bounce.easeIn" mit einem Element, das die Höhe von 0px auf 160px morphen musste. Morph würde dann setStyle mit negativen Werten aufrufen.

In meinem Fall hat das Einstellen des Effekts auf "linear" wie erwartet funktioniert.

Meiner Meinung nach sollte Morph "bewusst" sein, was es zu tun hat und verhindern, setStyle mit ungültigen Werten aufzurufen. Element.setStyle sollte außerdem einen Fehler ausgeben, wenn er mit unmöglichen Eigenschaften/Werten aufgerufen wird, anstatt dass der Browser abstürzt/das Problem behandelt. Ich werde sehen, ob dies in 1.3 behoben wurde und ein Ticket öffnen, wenn nicht.

+0

wird nicht passieren. Dies bedeutet, dass Sie für jeden möglichen gültigen Attribut einen gültigen gültigen Ausdruck jedes möglichen Attributs haben müssen. Das Framework sollte nicht das sein, was den Browser täuschend echt macht, es ist nur eine API und es liegt letztendlich in der Verantwortung des Webentwicklers, nur diejenigen zu übergeben, die gültig und sinnvoll sind. –

+0

Ich verstehe Ihren Standpunkt, in Bezug auf SetStyle. Eine Box mit negativen Dimensionen ist jedoch laut W3C ungültig. Morph sollte nicht versuchen, eine ungültige Box zu erstellen. Ich verstehe IE ist der einzige, der in diesem Szenario abstürzt, während andere Browser, die ich getestet habe, dies einfach ignoriert. Ich hatte heute auch ein anderes Problem, bei dem ich "NaNpx" zu setStyle schickte. Kein Browser hat sich außer IE beschwert. Meiner Meinung nach sollte jeder Browser abgestürzt sein, da dies offensichtlich ein schwerwiegender Fehler ist. –

+0

Das Problem ist mit einem elastischen Übergang, der über die Zielanzahl hinausgeht und wirklich zurückkommt. Übergänge sind jedoch universell, sie gehen zwischen Zahlen über, und die Anwendung dieses Übergangs zum Verändern der Höhe ist sekundär. Ich würde einfach gehen, wenn 'transition: Browser.Engine.trident && Browser.version <9?somethingselse: bouncin, '- btw Browserobjekt überprüfen, wenn das Kleinbuchstaben ist oder cap V –