指定位置にするするスクロール

公開日: : JavaScript

最近のサイトでは当たり前のように実装されているするするスクロールをjQueryで書いてみる。

基本:ページトップへ戻る

<a id="pagetop" href="#">ページトップへ戻る</a>

リンクにid「pagetop」をつける

$(function(){
		$('#pagetop').on('click', function(){
				$('html,body').animate({
						scrollTop: 0
				}, 500);
				return false;
		});
});

ページトップリンクがクリックされたらanimateで<html>もしくは<body>のスクロールトップ「0」位置まで500ミリ秒かけて移動。 ちなみに「$(‘html,body’)」は決まり文句でブラウザやモードによって「html」が使われたり「body」が使われたりするから両方指定しとけよ。ってことらしい。

最期にa要素のブラウザ標準の挙動を「false」でキャンセル。

応用:任意の位置に移動

<a id="move_target" href="#target_point">任意の位置に移動</a>
  :
<div id="target_point">移動したい要素</div>

「scrollTop: 0」がページ最上部なので、移動したい要素がページ上部から何ピクセルの位置にあるのかoffsetメソッドで取得して指定する。

$(function(){
		$('#move_target').on('click', function(){
				var targetTop = $('#target_point').offset().top;
				$('html,body').animate({
						scrollTop: targetTop
				}, 500);
				return false;
		});
});

ちなみにoffsetメソッドはその要素の上部位置(top)と左側位置(left)の値をもったオブジェクトを返す。 なので、左右にも移動させたい場合は以下のように記述。

$(function(){
		$('#move_target').on('click', function(){
				var targetTop = $('#target_point').offset().top;
				var targetLeft = $('#target_point').offset().left;
				$('html,body').animate({
						scrollTop: targetTop,
						scrollLeft: targetLeft
				}, 500);
				return false;
		});
});

以上がベースとなるプログラムで要素の下部に移動したいなら「offset().top」に要素の高さを足したり、要素の右側に移動したいなら「offset().left」に要素の幅を足したりして対応かな。 offsetメソッドがtop値をleft値しか返さないので・・・。

関連記事

icon_nl2br

JSでnl2brと同じ処理をするには

textareaのような複数行の入力値をブラウザに表示する時、改行コードをbrタグに置き換えることができると便利。PHP だと標準で用意されているnl2br関数がJavaScriptにはないので用...

記事を読む

js

スムーススクロールを作る – 基礎

ページトップへするするとスクロールするプログラムを作ります。 必要な値は? ページ内スクロールをした際のゴール地点の値:html,bodyのy座標「0」 画面に必要なパーツは? ...

記事を読む

js

スムーススクロールを作る – 応用

指定位置にするするとスクロールするプログラムを作ります。 必要な値は? ページ内スクロールをした際のゴール地点「y座標」の値 画面に必要なパーツは? 高さのあるコン...

記事を読む

js

計算プログラムを作る – JavaScript

2つの数字を足し算するプログラムを作ります。 必要な値は? 1つ目の数字 2つ目の数字 画面に必要なパーツは 1つ目の数字を入力するパーツ 2つ目の数字を入...

記事を読む

icon_replaceall

JSでreplaceAllと同じ処理をするには

JavaScriptで全件検索置換するにはオリジナル関数を用意する必要があります。PHPでいうreplaceAll関数が用意されていません。 全件検索置換する関数 function repla...

記事を読む

js

GoogleMap左上の白い枠を消す

左上の白い枠を消してほしいという要望が多いので。よく使うマップコードをスクラップ。 <!doctype html> <html> <head>...

記事を読む

icon_h

JSでhtmlspecialcarsと同じ処理をするには

JavaScriptでHTMLで意味のある記号をエスケープするにはオリジナル関数を用意する必要があります。PHPでいうhtmlspecialchars関数が用意されていません。 HTMLで意味の...

記事を読む

icon_rireki

履歴の残る検索置換

データの整理をしていたら昔のソースコードがでてきた。しかもDOMの操作でjQuery使わなかったから面倒だった気がする。 サンプルデータ 履歴の残る検索置換 HTML <h1...

記事を読む

icon_fadein

順番に画像をフェードイン表示する

ジュエリーショップのサイトを作った時のプログラム。商品写真が順番に表示されるので、目に止まりやすい気がする。 サンプルデータ HTML <...

記事を読む

icon_kaiten

要素を回転させる

jQueryのanimateメソッドを使って要素を回転させてみるプログラム。 サンプルデータ $('#box1').animate( {'z-index': 1},//z-inde...

記事を読む

wp
WordPressフロントページ設定とテンプレート

固定ページに最新投稿一覧を表示させた時の使用テンプレートが何なのか調べる機会があったので保存。 管理画面「設定」→「表示設定」の「フロントページの表示」 「最新の投稿」選択時 フロントページ...

js
GoogleMap左上の白い枠を消す

左上の白い枠を消してほしいという要望が多いので。よく使うマップコードをスクラップ。 <!doctype html> <html> <head>...

wp
WordPressでよく使う関数

string get_site_url( ] ] ) 管理者ページの「設定」-「一般」の「WordPressのアドレス(URL)」 現在のブログのサイトURL取得 [php]<?php ...

wp
WordPressにFacebookのいいねボタン

WordPressにFacebookのいいねボタンを表示する。 コピペで対応したい時用 <body>の直後に記述するコード <div id="fb-root&qu...

js
スムーススクロールを作る – 応用

指定位置にするするとスクロールするプログラムを作ります。 必要な値は? ページ内スクロールをした際のゴール地点「y座標」の値 画面に必要なパーツは? 高さのあるコン...

→もっと見る

    • icon_sublime1
      41,217 views

      ファイルの操作 ファイル名を検索して開く Windows:Ctrl+P Mac:Cmd+P 表示された入力欄にファイル名の一部を入力すると検索結果が表示されるので選択して開きます。 使用言語の指定 Windows:Ctrl+Shift+P Mac:Cmd+Shift+P 表示された入力欄に使用する言語名の一部を入力すると検索結果に「Set Syntax」が表示されるので選択しま...

    • 曜日番号
      17,999 views

      現在の曜日番号を表示 [php]<?php //現在の曜日番号(日:0 月:1 火:2 水:3 木:4 金:5 土:6)を取得 $weekno = date('w'); //現在の曜日番号出力 echo $weekno; ?>[/php] 現在の曜日を表示 [php]<?php //日本語の曜日配列 $weekjp = array( '日', //0 ...

    • wp
      8,630 views

      WordPressの固定ページに投稿ページの最新記事を表示する。 [php]<?php //最新5件を表示 $paged = get_query_var('paged'); //現在のページ番号 $num = 5; //表示件数 query_posts('posts_per_page='.$num.'&paged='.$paged); if ( have_posts() ) :...

    • groupby
      6,344 views

      まずここをチェック!を先に 「フィールド名=NULL」はダメ 「フィールド名 IS NULL」を使う やりたいこと 会員を全員の名前を表示したい 最新の予約日付を表示したい 使用するテーブル 会員テーブル [ps]mysql> SELECT * FROM member; +----+--------+ | id | name | +----+----...

    • icon_kaiten
      5,788 views

      jQueryのanimateメソッドを使って要素を回転させてみるプログラム。 サンプルデータ [js] $('#box1').animate( {'z-index': 1},//z-indexを0から1に変更する { duration: 1000, //アニメーションの時間 //ステップ中の処理 //引数num:処理途中の変化している値 step: f...

PAGE TOP ↑
←幅を狭くする