- 2008-01-15
- JavaScript
先日公開した(x)html2presenで使ってみたie7-js 。
以下にその感想を。
設定したかったのは下の内容。
(プレゼンを常にブラウザ表示領域内最大に固定するというもの)
#presenArea {
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
普通、IE6以下では上のcssは全く機能しない。
まず、fixed指定はもちろん無視される。
さらに、left-right、top-bottomの同時指定にも対応していない。
IE7.jsを使えば、そんな悩みを一気に解決してくれる・・・はずだったんだけど。
何故かfixedが効かない。
いろいろ試してみたところ、外部cssで指定するとうまく処理されないっぽい。
(style属性タグ内に書くとちゃんと固定された)
結局おなじみのexpressionでやることにした。
style属性タグをjsから操作するのは面倒いし、動的に生成してもIE7.jsが処理してくれるかわからないので。
* html #presenArea {
position: absolute;
top: expression(document.documentElement.scrollTop + 'px');
}
これで、無事解決とおもいきや、またも問題発生。
「'px'は宣言されていません」
いや、文字列リテラルなんですが?
どうやら、IE7.js内の処理でなんか起きてるらしい。
ってことで、
top: expression(document.documentElement.scrollTop);
に修正して解決。
(単位指定しないとまずくない?と思ったけど、IE7.js内でpx指定に変換されてる模様)
あと、たまに「a.clientWidthはnullまたはオブジェクトではありません」ってエラーも出るけど、それは僕が原因(HTMLがおかしいとか)っぽい。
初めてのIE7.jsはこんなんでした。
僕としてはけっこう便利だと思います。
ただ、cssに精通してる人達にとってはそうでもないのかなぁ、とも。
(おそらく今まで通りcss-hackを操る方が効率的でしょう)
※ ExplorerCanvasと同時に使ったのが原因ってことは…ないよなぁ。
[訂正 2008/01/23 23:20]
style属性ではなくスタイルタグ(要素)でした。(書き間違えました;)
混乱させてしまってすいませんm(_ _)m
style属性にはもともと対応してないっぽいです。
(一応試してみたらやっぱりバグりました…)
- Newer: ブログ用自作スクリプトをちょこっと修正
- Older: プレゼンツールは自作する時代らしいので作ってみた
Comments:0
Trackback+Pingback:1
- TrackBack URL for this entry
- http://blog.bornneet.com/TrackBack/49/
- Listed below are links to weblogs that reference
- (訂正)話題のIE7.jsは便利っぽいけど…やはりまだβ版なのかなという感じ from Born Neet
- Trackback from Born Neet 2008-02-13 (水) 16:52
-
IE7.jsが外部cssでもposition:fixed;できるようになってた、けど…
さっきie7-jsのサイトを見てみたら、いつのまにか2.0(beta2)や2.0(beta3)なんてのが出てた。 で、早速試してみると、以前はできなかった外部cssでのposition:fixed;指定があっさりできた。 僕がブログをサボってる間に進化してたのかぁ・・・ん? 今度は、left-right&top-bottomの同時指定が効かなくなってる!(なんか大きさはそのままでセンタリングされちゃう) 今まで使ってたbeta1ではちゃんとboxが拡大されるのに…; ... (more…)