CSSOM View Moduleを見ていたら、WindowView interfaceに、面白いプロパティがたくさん見つかった。
たとえば、 pageXOffset/pageYOffsetは、ウインドウのスクロールを、ピクセル数で返す。
また、screenX/screenYというプロパティもあり、これはブラウザの、ディスプレイ上の位置を返す。
他にもscreenインターフェースが規定されている。この歴史的なインターフェースの存在は知っていたが、W3Cにおいても規定されているとは知らなかった。
あと、良く見たら、マウスイベントのoffsetX/offsetYも、ここで定義されていた。ただし、前述の通り、まともに実装しているのはIE8しかないという事実がある。padding boxからの相対位置を返すべきなのに、ボーダーも含めていたり、そもそもpaddingすら無視していたりという実装がある。しかも、規格に従うならば、padding分を差し引かなければならない。面倒だ。さらに、pageX, pageYも規定されていた。なんだ、ここで規定されていたのか。やれやれ。getBoundingClientRect()を使うまでも無かったわけだ。W3Cで規定されているならば、使うのに遠慮はいらない。
それにしても、このあとから付け加えるような形で、一部の規格が点でばらばらの文書で規定されているのは、何とかならないのだろうか。しかも、いまだにドラフト段階だ。
No comments:
Post a Comment