IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / CSS / ページトップへ戻るスムーズスクロール(jQueryなし)

ページトップへ戻るスムーズスクロール(jQueryなし)

2017/12/28 CSS, javascript, WebTips, はてなブログ

ページトップへ戻るスムーズスクロール(jQueryなし)

  • HTML
  • Javascript
  • CSS
  • はてなブログ用
  • お問い合わせ等

当サイトの右下に表示している「 」は、クリックしますとスクロールしてページトップに戻ります。こうした「ページトップに戻る」リンクは最近では必須になってきています。これまで公開しているスクリプトにも含まれていますが、リクエストもありましたので単独で切り出してみました。「 」は、ホームページへのリンクだけです。

HTML

<ul class="toTop-nav">
<li><a href="javascript:void(0);" onclick="smoothScroll(0);return false;">アイコンまたはイメージなど</a></li>
<li><a href="あなたのブログURL">アイコンまたはイメージなど</a></li>
</ul>

Javascript

※使用、改変は自由ですが、転載はしないでください。

function smoothScroll(targetY) {
    var startY = window.pageYOffset;
    var f = ( targetY > startY ) ? true : false; // 'down' = true : 'up' = false
    setTimeout(function(){
        if( f && (startY <= targetY)){
            startY = startY + (targetY - startY) / 20 + 1;
            window.scrollTo(0, startY);
            setTimeout(arguments.callee, 10);
        } else if ( !f && startY >= targetY){
            startY = startY - (startY - targetY) / 20 - 1;
            window.scrollTo(0, startY);
            setTimeout(arguments.callee, 10);
        }else{
            window.scrollTo(0, targetY);
        }
    }, 10);
}

CSS

/* To Top */
.toTop-nav {
  position: fixed;
  bottom: 10px;
  right: 10px;
  display: -webkit-flex;
  display: flex;
  padding: 0;
  margin: 0;
  z-index: 999; }
  .toTop-nav li {
    list-style-type: none;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50px;
    text-align: center; }
    .toTop-nav li:first-child {
      margin-right: 10px; }
    .toTop-nav li a {
      display: block;
      width: 50px;
      height: 50px;
      font-size: 30px;
      line-height: 50px; }
      .toTop-nav li a {
        color: #fff;
        text-decoration: none; }
        .toTop-nav li a:visited {
          color: #fff; }
        .toTop-nav li a:hover {
          color: #fff;
          text-decoration: underline; }
        .toTop-nav li a:active, .toTop-nav li a:focus {
          color: #fff; }
      .toTop-nav li a:hover {
        text-decoration: none; }

はてなブログ用

  1. 下のコードのうち、「あなたのブログURL」をブログURLに差し替え、デザイン > カスタマイズ > フッタ に入れてください。
  2. 上の CSSを デザイン > カスタマイズ > デザインCSS に入れてください。
<ul class="toTop-nav">
<li><a href="javascript:void(0);" onclick="smoothScroll(0);return false;"><i class="blogicon-chevron-up"></i></a></li>
<li><a href="あなたのブログURL"><i class="blogicon-home"></i></a></li>
</ul>
<script>
function smoothScroll(o){var e=window.pageYOffset,l=o>e;setTimeout(function(){l&&o>=e?(e=e+(o-e)/20+1,window.scrollTo(0,e),setTimeout(arguments.callee,10)):!l&&e>=o?(e=e-(e-o)/20-1,window.scrollTo(0,e),setTimeout(arguments.callee,10)):window.scrollTo(0,o)},10)}
</script>

お問い合わせ等

当記事内のスクリプト使用によるいかなる損害についても責任を負いかねますので自己責任でご使用ください。

お問い合わせ、バグの報告、仕様変更のご要望等は Contact Us までお願いします。

はてなブログの記事タイトルの一部を装飾する
Windows に MongoDB をインストールする
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/09/14

GDPRを設定する

2023/08/30

scroll-behavior:smoothは履歴に残る

2023/08/22

要素がトップにきたことを感知する-IntersectionObserver

2023/08/8

ホームページとは別に投稿一覧ページをつくる方法-WordPress

2023/07/28

WordPress:シングルページにループはいらない

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ215
  • WebTips110
  • javascript100
  • Joomla!88
  • Wordpress78
  • Windows68
  • CSS64
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google36
  • Plamo33
  • はてなプラグイン25
  • php23
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • Git入門6
  • ConoHa WING6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • Xserver3
  • Firefox3
  • 静的サイトジェネレーター3
  • SSD3
  • Docker3
  • Blankslate3
  • Twitter2
  • Mactype2
  • GitHub2
  • youtube1
  • はてなブクマ1
  • rails入門1
  • 映画1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com