ボッス要素の内容を指定回数分点滅

JavaScriptでボッス要素の内容を指定回数だけ点滅させるサンプル。

実装例(サンプル)

実装例(サンプル)の動作について

  • 「3回点滅」ボタンをクリックすると、背景色が黄色のボックス要素を6秒間に3回点滅させる。
  • 「5回点滅」ボタンをクリックすると、背景色が黄色のボックス要素を10秒間に5回点滅させる。
  • 点滅中は、ボタン操作を無効にする。

ソースコード

JavaScript

<script type="text/javascript">
function blink( $setCount ) {
    $setCount--;
    var $count = 0;
    var $buttons = document.getElementById( "buttonBox" ).getElementsByTagName( "button" );
    var $blinkBox = document.getElementById( "blinkBox" );
    var $blinkBoxContents = '<div id="blinkBoxContents"></div>';
    for( var $i = 0; $i < $buttons.length; $i++ ) {
        $buttons[$i].disabled = true;
    }
    $blinkBox.innerHTML = "";
    setTimeout(
        function(){
            $blinkBox.innerHTML = $blinkBoxContents;
        },
        1000
    );
    var $intervalID = window.setInterval(
        function(){
            $blinkBox.innerHTML = "";
            setTimeout(
                function(){
                    $blinkBox.innerHTML = $blinkBoxContents;
                    if( ++$count == $setCount ){
                        clearInterval( $intervalID );
                        for( var $i = 0; $i < $buttons.length; $i++ ) {
                            $buttons[$i].disabled = false;
                        }
                    }
                },
                1000
            );
        },
        2000
    );
}
</script>

HTML

<div id="buttonBox">
    <button onclick="blink(3)">3回点滅</button>
    <button onclick="blink(5)">5回点滅</button>
</div>
<div id="blinkBox">
    <div id="blinkBoxContents"></div>
</div>

CSS

<style>
#blinkBox {
    height: 202px;
    margin: 10px;
}
#blinkBoxContents {
    width: 200px;
    height: 200px;
    background-color: yellow;
    border: 1px solid gray;
    border-radius: 10px;
}
</style>

スポンサード リンク

カテゴリー: JavaScript, アニメーション, 逆引き パーマリンク