menu
menu

キーワード検索

 

最近の投稿

【スクロール】jQueryでページトップボタンとページ内スムーススクロール

  • Labs

jQuery

こんにちは(・∀・)

今回はスクロールすると表示するページトップボタンとページ内スムーススクロールのjQueryサンプルをご紹介します。

jQueryでページトップボタンはページトップに戻るだけのボタンでしたが、このスクリプトはページ内をスムースに移動できる様に変更しました。

サンプル

JavaScript部分にdisplay: noneを記述してありますが、DOM構築時に一瞬ボタンが表示されてしまうため、その対策としてCSSのボタン要素にもdisplay: noneを記述しておきます。

HTML

Google Hosted LibrariesからjQuery 1.x snippetを<head>内に読み込みます。


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<div class="pagetop">
<a href="#wrapper">∧</a>
<!--pagetop--></div>
CSS

#contents {
  width: 1060px;
  margin: 0 auto;
}
.pagetop {
  display: none;
  position: fixed;
  bottom: 100px;
  right: 20px;
  width: 50px;
  height: 50px;
}
.pagetop a {
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #9fb7d4;
  color: #fff;
  font-size: 22px;
  line-height: 2.1;
  text-indent: 0.85em;
}
.pagetop a:hover {
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #4776AF;
}
JavaScript

$(function() {
//ボタン表示スクリプト
var pagetop = $('.pagetop');
pagetop.css({'display': 'none'});
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
pagetop.fadeIn();
} else {
pagetop.fadeOut();
}
});
});
$(function() {
//移動するスクリプト
$('a[href^="#"]').click(function() {
var href= $(this).attr('href');
var target = $(href == '#' || href == '' ? 'html' : href);
var position = target.offset().top;
$('html,body').animate({scrollTop: position}, 500, 'swing');
return false;
});
});
Result

サンプルデモはこちら


関連リンク

JavaScriptでスムーススクロール
jQueryでページトップボタン

  • カテゴリー:Labs