2004/04/09 (金) 15:32:54 ◆ ▼ ◇ [mirai]要素の上でホイールが回されたことを検知し(ステップ1)、
スクロールバーをホイールの回転に合わせて動かす(ステップ2)、
この操作を自分で実装する必要があります。
ステップ1は onDOMMouseScroll イベントの検知。 XULElement.addEventListener('DOMMouseScroll', listener, false) や
バインディングの <handler event="DOMMouseScroll" action="..."/>で
イベントを捕捉して、event.detail の値(正なら手前、負なら向こうへの回転)を調べます。
ステップ2は少々厄介です。 overflow プロパティの働きで表示された
スクロールバーは、 overflow を指定された要素のノードを
parentNode プロパティに持っている「子要素」なのですが、
親要素の側からは scrollbar 要素にアクセスする手段がありません
( document.getAnonymousNodes() などでも取得できない特殊な無名内容です)
外部からこの scrollbar 要素にアクセスできるようにするためには、
tagName scrollbar { -moz-binding: url(...); } といった要領で
この特殊な scrollbar 要素にバインディングを追加し、
<constructor/>(バインディングが適用された時点で自動的に実行される)を登録して、
その中で、親要素のプロパティとしてスクロールバー自身への参照を作成する必要があります。
こうしてあらかじめ作っておいた参照からスクロールバーにアクセスして、
スクロールバーの curpos 属性を操作すると、検知したホイールの回転量を
スクロールバーのスクロール量に反映させることができます。
スクロールバーのスクロール量を変更すれば、それに合わせて要素の内容もスクロールされます。
だとさ