KH-WEBLOG TOP > WEBメモ > JavaScript > スムーズなページ内リンク(別ページからも対応):jQuery

スムーズなページ内リンク(別ページからも対応):jQuery

最終更新日:

jQueryでページ内リンクをするするーっとスムーズな動きでさせる方法をメモ。

まずはjQueryを使用できるようにするために
<head>~</head>内に

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

か直接もっているjquery.js等のファイルを読み込む記述を書きます。

あとは適当にpagelink.js等の名前のjavascriptのファイルを作成し、その中に

$(function(){
    $('a[href^=#]').click(function() {
        var speed = 300;//スピード(値が小さいほど早い)
        var href= $(this).attr("href");
        var target = $(href == "#" || href == "" ? 'html' : href);
        var position = target.offset().top;
        $($.browser.safari ? 'body' : 'html').animate({scrollTop:position}, speed, 'swing');
        return false;
    });
});

のように記述して、同じように<head>内にpagelink.jsファイルを

<script src="js/pagelink.js" type="text/javascript"></script>

のように読み込んであげればOK

あとは普通のページ内リンクと同様に

<a href="#top">ページの先頭へ</a>

等のページ内リンクのアンカーを使えばOK

コーディング・WordPress化作業を代行します

別ページから飛んだ場合もページ内リンクに対応させる場合

別ページからも対応したスムーススクロールするページ内リンクの方法は下記です。

$(function(){
var headerHeight = $('#header').outerHeight();
var urlHash = location.hash;
if(urlHash) {
    $('body,html').stop().scrollTop(0);
    setTimeout(function(){
        var target = $(urlHash);
        var position = target.offset().top - headerHeight;
        $('body,html').stop().animate({scrollTop:position}, 500);
    }, 1000);
}
$('a[href^="#"]').click(function() {
    var href= $(this).attr("href");
    var target = $(href);
    var position = target.offset().top - headerHeight;
    $('body,html').stop().animate({scrollTop:position}, 500);   
});
});	

でOK

setTimeoutの箇所の1000は、
別ページからの場合ページの読み込みが終わるまで動きませんので
何秒後に実行するかです。

headerHeightはヘッダーの高さを取得していますので、ヘッダー固定が無いサイトでしたら不要です。

コーディング・WordPress化作業を代行します

JavaScriptのおすすめ参考書

楽天ブックス
¥2,838 (2024/04/23 21:14時点 | 楽天市場調べ)

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP RSS SEO WordPress アイキャッチ画像 アクセス解析 カスタムフィールド カテゴリー カラーミーショップ カート コメント ショートコード テンプレートタグ ドロップダウンメニュー パーマリンク フォーム フルスクリーン ブログカード プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク リンクカード レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 関連記事