自動スクロール機能を実装する方法【JavaScript】
スポンサーリンク
はじめに
ごあいさつ
こんにちは。みちです。
最近ブログの移行に失敗していくつか記事が消えてしまいました。悲しみの雨。
ということで移行はあきらめてこのブログをパワーアップさせることにしました!
今回はパワーアップ第一弾です!
自動スクロール機能実装のきっかけ
このブログは主に豆知識、体験談、ギターコードの3本柱で構成されているのですが、
最近はギターコードの更新頻度が高くなっています。
そのため、よりギターコードのページの利便性を上げるために
某有名サイトのような自動スクロール機能を実装してみようと思い立ちました。
実装
実装イメージ
実際に実装したページがこちらです。
実装方法
①(はてなブログの場合)Markdown記法を選択
これをしない場合、一部javascriptのコードが使えません(onclickなど)。
②以下を記載
<div>画面タップで自動スクロール開始/停止できます!</div> <div> <form name="scroll"> <select name="scroll" class="form-control" id="scroll" onchange="scrollSpeed();"> <option value="1"> 1 (速い) </option> <option value="2"> 2 </option> <option value="3"> 3 </option> <option value="4"> 4 </option> <option selected="" value="5"> スクロール速度 5</option> <option value="6"> 6 </option> <option value="7"> 7 </option> <option value="8"> 8 </option> <option value="9"> 9 (遅い) </option> </select> </form> </div> <script type="text/javascript"> var timerID; //clearInterval用 var flag = false; //オンオフ切り替え用 var speed = 90; //デフォルト値 function scroll(){ window.scrollBy( 0, 1 ); } //speed決定スクリプト function scrollSpeed() { var obj = document.getElementById('scroll'); var index = obj.selectedIndex; switch ( index ) { case 0: speed = 5; break; case 1: speed = 30; break; case 2: speed = 45; break; case 3: speed = 60; break; case 4: speed = 75; break; case 5: speed = 90; break; case 6: speed = 105; break; case 7: speed = 120; break; case 8: speed = 135; break; case 9: speed = 150; break; } autoscroll(true); //速度設定時スクロール開始(関数呼び出し) } function autoscroll (auto) { //スクロール開始関数 if (auto == undefined) { //autoが未定義の場合 auto = false; //autoをfalseに } if ( flag == false ) { //flagがfalseの場合 timerID = setInterval( "scroll()", speed ); //scroll関数をspeedミリ秒の間隔で繰り返し flag = true; //flagをtrueに(スクロール実行中) } else { //flagがtrueの場合(スクロール実行中) if (auto == true) { //autoがtrueの場合→スクロール速度が設定された場合 clearInterval(timerID); //スクロールを停止 TimerID = setInterval( "scroll()", speed ); //新たにtimerIDをセットしスクロールを開始 } else { clearInterval(timerID); //スクロールを停止 flag = false; //flagをfalseに(スクロール停止中) } } } </script> <div id="honbun" onclick="autoscroll()"> ###本文(コードなどを記載)### </div>
③公開して完了
問題なく動作するか確認してみてください。
あとがき
2日かけて実装できたので勢いで書き上げました!
javascript初心者の僕でもできたので、そう難しくはないと思います。
ぜひ自動スクロール機能を導入して、記事を充実させてみてください!
(利用される際はこのページへのリンクを張って頂けると泣いて喜びます…!)