
利用規約などをスクロールしたらアクティブになるボタンを実装する方法
カテゴリ:WEB制作
タグ:

利用規約などをスクロールしてから送信ボタンが押せるようなフォーム、あれを実装する方法を紹介します。
Javascript部分はたった9行で実装できます。
コードを紹介
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .scroll_box{ height: 300px; width: 100%; max-width: 500px; margin: 0 auto; overflow-y: scroll; padding: 10px; border: 1px solid #d2d2d2; } .btn input:disabled{ background: #9e9e9e; } .btn input{ display: block; border: none; padding: 10px 20px; font-size: 16px; background: #0869e6; color: #FFF; font-weight: bold; letter-spacing: 0.2em; margin: 30px auto 0; } </style> </head> <body> <div class="scroll_box">スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。スクロールしてください。 </div> <form> <div class="btn"> <input type="submit" value="確認画面" class="btn" disabled > </div> </form> <script> document.addEventListener('DOMContentLoaded', function () { const scrollBox = document.querySelector('.scroll_box'); const submitBtn = document.querySelector('.btn input'); scrollBox.addEventListener('scroll', function () { if (scrollBox.scrollTop + scrollBox.clientHeight >= scrollBox.scrollHeight) { submitBtn.disabled = false; } }); }); </script> </body> </html>
コードを解説
HTML
スクロールボックスのスクロール量と高さを取得するためにクラス名(scroll_box)を振っておきます。
ボタンの方にも処理する際のターゲット用にクラス名(btn)を振っておきます。
<div class="scroll_box">スクロールしてください。以下略〜〜 </div> <form> <div class="btn"> <input type="submit" value="確認画面" disabled > </div> </form>
Javascript
読み込み後に実行
document.addEventListener('DOMContentLoaded', function () { });
スクロールボックスとボタンを取得していきます。
const scrollBox = document.querySelector('.scroll_box'); const submitBtn = document.querySelector('.btn input');
スクロールで発火させます。
scrollBox.addEventListener('scroll', function () { });
『○○○.scrollTop』でスクロール時の頂点部分を取得しスクロールボックス自体の高さプラスします。
スクロールボックス内部の高さを取得して、スクロール位置 + 高さが全体のスクロール高さと等しければ末尾まで到達したことになるため、『○○○.disabled = false;』でボタンをアクティブにします。
if (scrollBox.scrollTop + scrollBox.clientHeight >= scrollBox.scrollHeight) { submitBtn.disabled = false; }
実装完了です。
まとめ
Javascriptはたった9行で実装できますのでとても簡単なプログラムです。
ぜひ、参考にしてください。