スクロールをするとエリアの高さに合わせて線が伸びる

スクロールダウン
-スクロールをするとエリアの高さに合わせて線が伸びる-

デモページを見る

See the Pen 9-1-5 スクロールをするとエリアの高さに合わせて線が伸びる by 動くWebデザインアイディア帳 (@ugokuweb) on CodePen.

「Result」内をスクロールして動きを確かめてね!

動きを実現する仕組み

Scrollgress というスクロール量に応じてプログレスバーを表示するライブラリを使って、指定したエリアの高さと連動して線を伸ばす。

[使用するライブラリ]
* jQuery
* Scrollgress(https://github.com/michael-lynch/scrollgress

HTMLの書き方

  1. head終了タグ直前に自作のCSSを読み込みます。
    <link rel="stylesheet" type="text/css" href="css/9-1-5.css">
    </head>
  2. 高さを計測したいエリアにid(今回はcontainer)を付けます。
    <header id="header">
    <h1>Logo</h1>
    </header>
    
    <main id="container">
    <p>この中にコンテンツの内容が入ります。</p>
    </main>
    
    <footer id="footer">
    <small>&copy; copyright.</small>
    </footer>
  3. body 終了タグ直前に jQuery、Scrollgress、動きを制御する自作のJS の3 つを読み込みます。
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <!--自作のJS-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/scrollgress/2.0.0/scrollgress.min.js"></script>
    <script src="js/9-1-5.js"></script>
    </body>

自作のCSS内の書き方

JavaScript で付与されるバー表示の.scrollgress というクラス名に対し、表示位置や要素の重なり順(z-index)を指定します。
※今回はheaderの下にバーを表示させたいため、top の位置を!important を付けてJavaScript で指定されたCSS を上書きます。

/*========= バー表示のためのCSS ===============*/

.scrollgress{
	z-index: 3;/*他のposition指定しているエリアより前に出すためz-indexの数字を大きく*/
	top:70px!important;/* fixedで設置しているheaderの高さよりも下にバーを出す*/
}
#header{
position: fixed;/*Header固定*/
z-index: 2;
top:0;
height: 70px;/*高さ指定*/
width:100%;
background:#333;
}

/*検証用のレイアウトのためのCSS*/
#container{
height: 2000px;
}

自作のJS内の書き方

高さを計測したいエリアのid を指定し、線の高さと色を設定します。

	$('#container').scrollgress({//バーの高さの基準となるエリア指定
		height: '5px',//バーの高さ
		color: '#990000',//バーの色
	});

この技術を使ったサンプルサイト

バリエーション
を見る

「機能」に関わる
動き一覧

書籍情報

紙面だからこそできるまとめ方でコードを説明し、
全体を俯瞰して調べることが出来る構成になっています。

もちろん、パーツのサンプルコードもzipでまとめてダウンロードできます。
購入をしてくださった方には特典がありますので是非チェックしてみてください!

書籍紙面サンプル

出版社:ソシム株式会社
2021/2/27 発売

書籍紙面サンプル

出版社:ソシム株式会社
2021/7/31 発売

Page
Top