2010-12-08 9 views
0

最近私のウェブサイトにMootolsスクリプトを作成しました。 Fx.Morphを使用して、私が目指していた効果をうまく作り出しました。しかし、スクリプトはInternet Explorer 7および8で失敗します(9で正常に動作し、IE6をチェックするのは面倒ではありませんでした)。私はmootools 1.2.5を使用しています。Mootools 1.2.5 Element.setStyle/Morph

問題を掘り、私は次の

  • すべての私の問題は0PXから要素の高さをモーフィングしながら、どういうわけか、無効な値
  • でのsetStyleを呼び出すFx.Morph、から来ている見つけ出すことができ160ピクセルに、のsetStyleは(例えば-3pxなど)負の値で呼び出され< ----これはIEが今の

エラーがスローところ、私はのsetStyleで次の操作を実行して、エラーを「パッチを適用」でありますMootoolsコアの機能:

if((Browser.Engine.trident && value[0] == '-' && (property == 'height' || property == 'width')) || value[0] == 'N') 
    value='0px'; 

誰でもこの問題に関する詳細情報がありますか、同様の問題が発生しましたか?

+0

モーフコードを共有してください。または、より良い方法は、www.jsfiddle.netにアクセスして、壊れた作業例を作成してください。経験のうち、IEが間違った種類の値を取得した場合、IEは不安定な状態になります。もしあなたが言うなら、確実に確認できる何か、 'element.setStyle(" scroll "、" none ");'ブラウザ。 IEで負の高さを持つことは悪いことのように聞こえる。 FYI、これもjqueryの問題です - http://bugs.jquery.com/ticket/5588 - テストケースを作成してください。私は何ができるかを見ていきます。 –

答えて

0

無効なプロパティ/値コンボでsetStyleを呼び出そうとしていて、指定されたプロパティに対して無効な値を設定しようとしている場合、setStyleは気にしません。

これを念頭において、私の問題は私が使用していた効果から生じました。私は "Bounce.easeIn"のようなものを、0pxから160pxに高さを変えなければならない要素で使用していました。 MorphはsetStyleを負の値で呼び出します。

私の場合、効果を「線形」に設定すると、期待どおりに機能します。

私の意見では、Morphは何をしようとしているのかを意識して、無効な値でsetStyleを呼び出すことを防ぎます。 Element.setStyleは、ブラウザクラッシュ/問題の処理を行わず、不可能なプロパティ/値で呼び出されたときにもエラーをスローする必要があります。これが1.3で修正されているかどうかを確認し、そうでなければチケットを開きます。

+0

は起こりません。これは、あなたが渡す可能性のあるすべての属性のすべての可能な値のブラウザごとの有効な正規表現を持つことを意味します。フレームワークはブラウザを偽造するものであってはなりません。単なるAPIであり、最終的には有効で合理的なものを渡すのはWeb開発者の責任です。 –

+0

私はあなたのことを、setStyleに関して理解しています。しかし、負の次元のボックスを持つことは、W3Cのように無効です。 Morphは無効なボックスを作成しようとしているべきではありません。 このシナリオでIEが唯一のクラッシュであると理解していますが、テストした他のブラウザではこれを無視しています。私は今日また別の問題を抱えていました。ここで、setStyleに "NaNpx"を送りました。 IE以外のブラウザーは不平を言う。私の意見では、これは明らかに大きなエラーであるため、すべてのブラウザがクラッシュしているはずです。 –

+0

問題は、ターゲット番号を超えて実際に戻ってくる弾性的な移行です。しかし、遷移は普遍的であり、それらは数の間で遷移し、高さのモーフィングへの遷移の適用は副次的である。私は単に 'transition:Browser.Engine.trident && Browser.version <9?何か:bouncin、btwブラウザオブジェクトが小文字であるかどうかチェックするかVキャップ –