jQuery、または JavaScript を使って、ボックスの中の要素を自動でスクロールさせて、テキストが流れているように見せる方法を紹介します。
実装したサンプルは以下。
ボックス・スクロール:サンプル・デモ
HTML の記述サンプルは以下。
<div id="scroll-box"> <ul> <li>テスト 1行目</li> <li>テスト 2行目</li> <li>テスト 3行目</li> <li>テスト 4行目</li> <li>テスト 5行目</li> <li>テスト 6行目</li> <li>テスト 7行目</li> <li>テスト 8行目</li> <li>テスト 9行目</li> </ul> </div>
CSS 側ではボックスのサイズと[overflow:hidden]を指定しておきます。
#scroll-box { height:200px; overflow:hidden; overflow-y:scroll; border:1px solid #ccc; padding:0 20px; }
続いてボックスをスクロールさせるためのプログラム本体。
まずは jQuery を使わずに動作する、通常の JavaScript ヴァージョンを。
<script> window.onload = function () { autoScroll(); } var $scrollY = 0; function autoScroll() { var $sampleBox = document.getElementById("scroll-box"); $sampleBox.scrollTop = ++$scrollY; if( $scrollY < $sampleBox.scrollHeight - $sampleBox.clientHeight ){ setTimeout( "autoScroll()", 20 ); }else{ $scrollY = 0; $sampleBox.scrollTop = 0; setTimeout( "autoScroll()", 20 ); }} </script>
以下は jQuery を使用するタイプです。
こちらは本家の[jQuery.js]をあらかじめ読み込んでおくことを忘れずに。
jQuery( function() { autoScroll(); } ); var $scrollY = 0; function autoScroll() { var $sampleBox = jQuery( '#sampleBox' ); $sampleBox.scrollTop( ++$scrollY ); if( $scrollY < $sampleBox[0].scrollHeight - $sampleBox[0].clientHeight ){ setTimeout( "autoScroll()", 20 ); }else{ $scrollY = 0; $sampleBox.scrollTop( 0 ); setTimeout( "autoScroll()", 20 ); }}
JavaScript タイプ、jQuery タイプ共にどちらも比較的簡単なコードで動作します。
ぜひ導入を検討してみてはいかがでしょうか。
ボックス・スクロール:サンプル・デモ