Mozilla で簡単に要素の箱を移動可能にする XBL 部品

概要

drag.xblは、 Mozilla で HTML 文書を表示する際に、 CSS を使って特定の要素をマウスによるドラッグで閲覧者が移動可能にするための XBL 部品です。

はじめに

Mozilla (というか Gecko) は、 XBL という言語を使って要素の表現を制御できます。 W3CCSS (水準 2 まで) では、 表示については基本的に「静的」な指定しかできません。 しかし XBL と組み合わせることにより、 条件判断を含めたり閲覧者の操作に応じた動作を行ったりすることが可能になります。 (実際に現在の Mozilla には、移動文字 (marquee)XBL を使って実装されています。)

drag.xbl は、要素 (に対応する(ボックス)) を閲覧者がマウスのドラッグにより移動可能とするための XBL 部品です。 同じことは JavaScript を文書に直接埋め込んでも実現できます (し実際よく使われています) が、 XBL 化して CSS を通して指定することには、 たとえば次のような利点があります。

また、移動中のスタイル (たとえば、マウス指示子を移動時のものとするとか。)CSS を使って指定することができます。

使い方

  1. まず、 drag.xbl を持っていってください。
  2. CSS 形式のスタイル・シートで上記文書を用意した URI を以下の例のように書き入れます。 (なお、ここで使用している -moz-binding 属性は Mozilla (Gecko) の独自拡張です。 もじら組Mozillaの独自拡張CSSは使わないでくださいという文書に目を通して理解した上でお使い下さい。)
  3. 移動可能時及び移動時のスタイルを、必要に応じて合わせて指定しておきます。
.movable-element {
  -moz-binding: url('http://suika.fam.cx/www/style/ui/drag.xbl#simple-drag');
}
/* 移動可能な時、級 DRAGABLE が追加されます。 */
.movable-element.DRAGABLE {
  position: absolute /* または fixed */;
  margin: 0 /* 位置計算の都合上 0 でないといけません。 */;
  top: 4em; /* 例。 */
  left: 1em;
}
/* 移動中の時、級 DRAGING が追加されます。 */
.movable-element.DRAGING {
  cursor: move; /* 例。 */
}

制限事項

License

目次

  1. 概要
  2. はじめに
  3. 使い方
  4. 制限事項
  5. License