2007/1/13 土曜日

ページ内リンクをアニメーションで

Filed under: 素人ウェブマスターの挑戦, javascript — 番頭 @ 18:08:20

先日ご報告したポップアップサブメニューを実装すべく、番頭は現在細かなところをリニューアルしております。

リニューアルのついでに、半年以上前に作成した原稿のブラッシュアップや、より使い勝手の良い操作の導入を考えているところです。
(そんなことばっかりやるから開店が遅れるんだ と言う声が聞こえてきそうですが…)

そのうちの一つが、「ページ内リンクをアニメーション」で行うことです。
テストページをご覧下さい。

「ページ内リンク」で検索をかけるとわかると思いますが、ページ内リンクのアニメーションは単なる見栄以上の効果があります。

リンクをクリックすると別のページに移動すると言う固定観念がある中、ページ内リンクで一瞬のうちに同ページの別の場所に移動されると、閲覧者は多少なりとも混乱するのです
アニメーションはその混乱を排除するために役に立ちます。

と言うことで、実装開始! と言いたいところでしたが…… これも結構手間がかかりました。

まず番頭が見つけたのは、「このページの先頭へ、をちょこっとおしゃれに[スクリプトAとします]」(ブログ:SiMPLE*SiMPLE)
よくある「このページの先頭へ」というページ内リンクをクリックすると、するするっと先頭までアニメーションするjavascriptです。

ただ、番頭が欲しかったのは「先頭へ」と上に上がるアニメーションより、下に上がるアニメーションでした。

そこで、もう少し調べたところ見つけたのが、「ページ内リンク(ID)にするするっと移動する[スクリプトBとします]」(ブログ:web-conte.com)。
これで上にも下にもアニメーションできます

早速実装! javascriptファイルをアップロードして HTMLのヘッダーで指定するだけ! と思いきや……

番頭の環境(WindowsXP SP2 / Firefox1.5.0.9)では、リンク先のIDが画面下のほうにあるとき、延々と下にスクロールし続ける(スクロールバーで上に移動しようとしてもすぐ一番下まで下がる)と言う不具合が
(リンクで指定した場所がウインドウの一番上に来るまでスクロールし続ける仕様なのではないかと思います)

さすがにスクリプトを延々眺めて改変を試みるのには無理があると思ったので、別のスクリプトを探しました。

で、見つけたのが、「[ajax] ページ内リンクでスムーススクロール[スクリプトCとします]」(ZEROBASE)
これだと上記のような「延々下にスクロール」と言う不具合はないようです。

しかし、このスクリプトCも少し気になるところが…

  • スクリプトAとは逆に、スクリプトCは下向きのアニメーションしかできないようです。そのため、「先頭に戻る」スクリプトにはスクリプトAを導入する必要があります。なおこの方法では一番下から中央あたりにアニメーションリンクすることが出来ません。
  • HTMLのヘッダーには「スクリプトAのjsファイル」→「スクリプトCのjsファイル(2ファイル)」の順に設定する必要があります。
    逆にするとなぜか「先頭へ戻る」のアニメーションが働きません。
  • リンク先の場所は<a name="xxx"></a>で囲む必要があるようです。
    最初僕は<hx id="xx"></hx>と指定していたので上手く動きませんでした。

紆余曲折で何とか実装できましたが、少し不満もあります。
もちろん、ど素人が無料で他人のスクリプトを拝借している以上、文句は言えない立場なのですが。

スクリプトBの不具合がなければなぁ……誰か有償で改変してくれないだろうか…
と、自分勝手なことを考えてしまった番頭でした。

コメント (3) »

  1. 「スクリプトB」の相馬です。トラックバックも送りましたが、不具合に対応したかたちのスクリプトを「続・ページ内リンク(ID)にするするっと移動する」という記事のなかで紹介しています。参照ください。

    コメント by 相馬称 — 2007/7/23 月曜日 @ 22:02:47

  2. Allergic symptoms signs codein…

    Tylenol with codeine elixir concentration. Codeine acetametaphen. Brain and codeine. (more…)

    トラックバック by Withdrawal symptoms from codeine. — 2008/4/6 日曜日 @ 3:49:22

  3. Humph. Someone has to force me to read this post. It’s too big and boring. Brevity is the sister of talent, remember that.

    コメント by Heorr4565 — 2008/4/11 金曜日 @ 15:12:42

コメント RSS トラックバック URI

コメントをどうぞ

Quicktags:

HTML convert time: 2.948 sec. Powered by WordPress ME