Udemyセール!最大95%オフ!1,200円~Udemy公式サイト >

この記事にはプロモーションが含まれています。

【超簡単】Javascript無しで「スムーススクロール」のトップへ戻るボタンを実装

【超簡単】Javascript無しで「スムーススクロール」のトップへ戻るボタンを実装

この記事では

Javascriptを使用せずに
「スムーススクロール」のトップへ戻るボタンを実装する方法

について解説します。

スムーススクロールのトップへ戻るボタンは、もちとんJavascriptを使用することで実装できます。

しかし、この記事の方法を用いればJavascriptのファイルやソースコードの作成コストが減るだけでなく、とても簡単に「スムーススクロール」のトップへ戻るボタンを実装することが可能です。

ケケンタ

本当にめちゃくちゃ簡単なので、ぜひご活用ください!




ケケンタ

ケケンタのITブログでは、WebアプリPHPLaravel)やWeb制作WordPressコーディング)について情報を発信しています。
学習中の方や実務をされている方など多くの方にアクセスいただいていますので、ぜひほかの記事も参考にしてみてください!


運動不足、気になっていませんか?

もしプログラミング学習やお仕事で運動不足が気になっているなら
連続屈伸運動がおすすめです!

ボタンにカーソルを合わせるだけ
カウントダウンが始まるタイマーをご用意してみました!

ケケンタ

無理のない範囲で、ぜひ隙間時間に屈伸運動を取り入れてみて下さい!

タイマースタート

3:00

※運動不足だと連続3分で取り組んでもかなり息が切れます
(僕は加えて気分もちょっと悪くなりました……)
絶対にご無理の無い範囲でお取り組みください!



目次

【動作確認】スムーススクロールのトップへ戻るボタン

まずは実際の動作をご確認いただけるように、codepenで用意したデモをお見せします。

See the Pen Untitled by ケケンタ (@lgshifbg-the-looper) on CodePen.

ケケンタ

ご覧いただいたように、Javascriptを使用しなくても、「スムーススクロール」のトップへ戻るボタンは簡単に実装することが可能です!

【解説】ソースコード

以下が「スムーススクロール」のトップへ戻るボタンを実装したソースコードです。

<!-- ページのトップ -->
<div id="top"></div>

<!-- 長いコンテンツ -->
<div style="height: 100vh; background-color: #00c3ff;"></div>

<a href="#top" class="scroll-to-top">トップへ戻る</a>
html {
  scroll-behavior: smooth; /* スムーススクロールを有効にする */
}

/*** 以下は見た目や動作確認用のCSS ***/

body {
    height: 150vh; /* 長いページを生成 */
    margin: 0;
    padding: 0;
}
.scroll-to-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 10px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    font-size: 14px;
}
.scroll-to-top:active {
    background-color: #0056b3;
}

ポイントは、CSSでhtml自体にscroll-behavior: smooth;を指定している点です。

こうすることで、アンカータグによる画面内の移動がスムーススクロールになります。

ケケンタ

通常どおりにアンカータグを設定し、html自体にscroll-behavior: smooth;を指定するだけでいいのでとっても簡単です!

【注意点】スムーススクロールが上手く機能しない場合

スムーススクロールが上手く機能しない場合、いくつかの原因が考えられます。

1. ブラウザの互換性

scroll-behavior: smooth;がサポートされていないブラウザを使用している可能性があります。

scroll-behavior: smooth;は最新のブラウザでサポートされていますが、古いブラウザでは動作しないことがあります。

互換性の問題をチェックするには、Can I Useをご参照ください。

2. 正しいセレクタに適用されていない

scroll-behavior: smooth;が正しいセレクタに適用されていない可能性があります。

通常はhtmlまたはbodyに適用しますが、特定のスクロールコンテナに適用したい場合は、そのコンテナに適用する必要がある点にご注意ください。

3. CSSの競合

他のCSSがscroll-behaviorプロパティと競合している可能性があります。

例えば、特定のフレームワークやリセットCSSが影響している場合があります。

4. HTML構造の問題

アンカーリンクが正しく設定されていない場合、スムーススクロールが機能しないことがあります。

例えば、ターゲット要素が存在しない、IDが正しく設定されていないなどです。

ケケンタ

基本的にはhtml要素にscroll-behavior: smooth;を付与するだけでスムーススクロールになるばずですが、もしも上手く行かない場合は様々な原因が考えられので、これらの内容を参考に、ソースコードをご確認いただければと思います。

まとめ

以上がJavascriptを使用せずに「スムーススクロール」のトップへ戻るボタンを作成する方法でした。

いかがだったでしょうか。

通常のアンカータグの設定に加えて、htmlにscroll-behavior: smooth;を付与するだけで簡単に実装することができました。

ケケンタ

実装コストが削減できるだけでなく、Javascriptの管理コストも減らすことができるためぜひご活用いただければ幸いです!

それでは、最後までご覧いただきありがとうございました!

当ブログではWeb制作やPHPなどWebアプリに関する情報を発信しています。

ご興味のある方はほかの記事もご覧いただけるとうれしいです。

【超簡単】Javascript無しで「スムーススクロール」のトップへ戻るボタンを実装のアイキャッチ画像

この記事が気に入ったら
フォローしてね!

この記事が良いと思ったらシェアしてね!

コメント

コメントする

CAPTCHA


目次