一定期間更新がないため広告を表示しています
<< jQuery 1.6(+) のバグ?jQuery.support.style に注意 | main | Mac で Opengazer にチャレンジ >>
2014.08.06 Wednesday
一定期間更新がないため広告を表示しています
-||-|-|by スポンサードリンク
2011.06.05 Sunday
ここではあまり書いていなかったのですが、だいぶ前に jsdo.it の方で 0.0.5 候補版を公開しています。
jquery.belatedPNG 0.0.4a test - jsdo.it - Share JavaScript, HTML5 and CSS
(jQuery 1.6+ のバグを対処するために公開した 0.0.4 よりも前に載せていたので、バージョンがおかしくなっていますが、位置づけ的には 0.0.5a となります。)
まだ見ていない・試していない方はお試しください。
0.0.5a の正式公開は未定です。また、実は既に 0.0.5b もあるのですが、公開自体が未定になっています。
これは対象の要素や、その要素の offsetParent などに対して zoom = 1 が指定される為です。例えば IE6 でページ全体を印刷したい場合などで body に zoom が指定されている場合に問題が出る可能性があります。zoom が指定されていれば、そのままにする処理が必要となりますが、残念ながら現行のバージョンではその処理が入っていません。
IE8 で CSS expressions がサポート外になった為です。詳しく説明すると、DD_belatedPNG.fix は、動的に style 要素を追加し、指定されたセレクタの behaivor プロパティに対して expression を使って fixPng が実行されるようにしています。要素を読み込む前に指定出来る点や、一括で指定出来る点を考えると、速度的にもこちらを実装したいところですが、IE6/7/8 を対象としている jQuery.belatedPNG では仕方なく外しています。
DD_belatedPNG / jQuery.belatedPNG で pngFix された要素は親要素の透過度に影響されません。そもそも VML が影響を受けないのかよく分かりませんが、pngFix されている要素に対しては、親要素と同時に透過させるのが吉かもしれません。
【追記:11/07/06】どうやら親要素と同時に透過させてもうまくいかないようです。やはり pngFix されている要素に透過処理を施す必要がありそうです。
実は一番頭を悩ませている問題です。もし解決策があれば教えて頂きたいです。fixPng による pngFix は、VML の fill ノードを動的に作成して PNG を貼り付けます。fill ノードは type が tile となっており、これがリピートを実現させている(※くわしくはこちら)理由ですが、XP と IE6/7/8 では表示に対して問題があるらしく、zoom であったり、ブラウザの機能で拡大縮小されるとリピートしている画像に 1px 程度の空きが出来ます。なお、Win7 で確認したところではこの問題は発生しませんでした。
通常、印刷時には意図的に非表示となるのですが、調整することで IE6/7 に関してはある程度それらしく表示出来ます。問題は IE8 で、VML 自体が無くなったように表示されてしまいます。現状対処方法は見つかっていません。
悲しい限りです
JavaScript|17:56|comments(1)|trackbacks(0)|by ニノミヤ カズノリ
2014.08.06 Wednesday
-|17:56|-|-|by スポンサードリンク
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | ||||||