> 2004/04/09 (金) 15:35:26 ◆ ▼ ◇ [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 属性を操作すると、検知したホイールの回転量を
> > スクロールバーのスクロール量に反映させることができます。
> > スクロールバーのスクロール量を変更すれば、それに合わせて要素の内容もスクロールされます。
> > だとさ
> それはXULでプログラム組む時の話じゃないか?
くめよ!
参考:2004/04/09(金)15時34分44秒