技 巧 鍵 盤 | ─ KeyNavi:キーボードを活用してホームページを快適に─ |
■ キー割当表示[Shift-H] |
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] スクロール実行 | ・サイトマップ [Shift-S] |
次は差分スクロールを行う関数の例です。
ちなみにページの最後部への移動「S/L」では「kl_slto_max()」関数をつかえます。 ページ単位のスクロール「R/F」「U/J」は 「kl_slby(dx,dy)」を「dy=+-kl_windowheight()」として実行します。 また頻繁に使われる「PageTop」リンクは 「<a href="#pagetop" onclick="kl_slto(0,0); return false;">PageTop</a>」 とできます(JS無効時も動作)。
さて、上記スクリプト(kl_slto(),slby())をみると Windows版Netscapeの場合は「kl_sl_offset()」という関数を利用しています。
恐らくは 入力引数から実際の スクロール量を算出する時に下部に表示されるスクロールバーの分を 考慮するのを忘れています。 それをモデル化し1,2px程度の誤差はでますが 以下の関数で スクロール量を補正します。
Netscape4.xで ウィンドウの横巾を小さくし 下部に横スクロールバーを表示させてみて 以下の例を実行してみて下さい。
特にスクロール位置がページ最後部になると 補正無しの場合「self.scrollBy(0,3)」の実行での移動量が大きすぎるのが 分かります。
「kl_slby()」を使った場合は補正をかけているのできちんと動作します。
【JavaScript@Keynavi.Net :
ナビゲーション編
】
「Ctrl-矢印」でフォーカスを上下左右に移動できます。
|
トップへ戻る [1] | Back[Q] ・Top[W] ・Up[E] ・PgUp[R] ・Focus[Ctrl-矢印] |
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] スクロール実行 | ・サイトマップ [Shift-S] |
■ キー割当表示[Shift-H] | ─ KeyNavi Project 2003 ─ |