タグ別アーカイブ: split

テキストを1文字ずつフェードイン

文字列の fadeIn はよく見かけます。
「こんなことが出来る」と聞かれましたのでやってみました。

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        <script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
        <script type="text/javascript"><!--

            $(function(){
                $('#exec').click( function(){
                    $('#text_area').empty();
                    var arrText = $('#input_text').val().split('');
                    $.each(arrText, function(index, val){
                        $('#text_area').append('<span id="cnt' + index + '" style="opacity:0;">' + val + '</span>');
                        $('#cnt' + index).delay(index * 300).animate({opacity:1},1000);
                    });

                });
            });

        --></script>

        <link rel="stylesheet" href="reset.css" type="text/css">
        <style type="text/css"><!--

            div {
                margin : 50px;
            }

            #text_area {
                height : 50px;
                margin : 50px;
                border : solid 1px #000000;
            }

        --></style>

    </head>
    <body>
        <div id="main_area">

            <div id="main_area">
                <p id="text_area"></p>
            </div>

            <div id="button_area">
                <input id="input_text" type="text" value="Sample Message">
                <button id="exec">click!</button>
            </div>

        </div>
    </body>
</html>

sample

sample には textbox が存在しています。
入力したうえで button を click すると入力した文字列が 一文字ずつ fadeIn します。
別に fadeIn を使っても良いんですが最終形はもう少し凝ったこともするらしいので
あえて animate を使用しています。

どうでしょう、意外といけているかと思うのですが・・・
一度これで確認してもらおうかと思います。
最終的にはもう少し装飾などを追加しますが、まずはこれで確認してもらおうと思います。

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

色情報の表記変更

前回「簡易カラーピッカー」を作成しました。
後から確認したところ $(this).css(‘background-color’); で背景色を取得した場合、
ブラウザによって取得する文字列が異なるようです。

取得内容をそのまま背景色に設定する分には問題ないのだと思います。
しかし、文字列を表示する場合はクロスブラウザ対策をしないといけないようです。

ということで今回は色情報取得時のクロスブラウザ対策をしてみます。

<html>
    <head>
        <script src="./jquery-1.9.1.min_.js"></script>   
         
        <script type="text/javascript"><!--
            $(function() {

                var colorData;
                var colorChangeData;
                // Color List Display
                function SetColorList(type) {
                    // Color List Clear
                    $('#select_area').empty;

                    // rData
                    for (var r=0; r<16; r = r + 2) {
                        // gData
                        for (var g=0; g<16; g = g + 2) {
                            // bData
                            for (var b=0; b<16; b = b + 2) {
                                // Color Set
                                colorData = parseInt(r).toString(16) + parseInt(g).toString(16) + parseInt(b).toString(16);
                                $('#select_area').append('<div class="color_box" style="background-color:#' + colorData + ';"></div>');
                            }
                        }
                        $('#select_area').append('<div class="float_both"></div>');
                    }

                    // Color Click
                    $('.color_box').click(function (e) {
                        // Get Color Data
                        colorData = $(this).css('backgroundColor');
                        // Date Set
                        $('#color_disp span').replaceWith('<span>' + colorData + '</span>');
                        $('#color_disp').css('backgroundColor', colorData);

                        // New
                        colorChangeData = '';
                        if (colorData.substr(0,1) == '#') {
                            // Opera (#ffffff)
                        } else {
                            // Etc (rgb(255, 255, 255))
                            // 
                            colorData = colorData.replace('rgb(', '');
                            colorData = colorData.replace(')', '');
                            //
                            arrColor  = colorData.split(',');
                            for (var cnt=0; cnt<=2; cnt++) {
                                arrColor[cnt] = parseInt(arrColor[cnt]).toString(16);
                                if (arrColor[cnt].length < 2) {
                                    arrColor[cnt] = '' + '0' + arrColor[cnt];
                                }
                            }
                            colorChangeData = '#' + arrColor[0] + arrColor[1] + arrColor[2];
                        }
                        $('#color_text span').replaceWith('<span><p>' + colorData + '</p><p> ↓ Change</p><p>' + colorChangeData + '</p></span>');

                    });

                }

                // init
                SetColorList();

            });
        --></script>
         
        <link rel="stylesheet" href="reset.css" type="text/css">
        <style type="text/css"><!-- 

            #disp_area {
                margin           : 10px auto;
                padding          : 20px;
            }

            #disp_area p {
                padding          : 10px;
            }

            #select_area {
                margin           : 10px;
                padding          : 20px;
            }

            .color_box {
                float            : left;
                height           : 15px;
                width            : 15px;
                margin           : 0;
                padding          : 0;
            }

            .float_both {
                clear            : both;
            }

        --></style>
         
    </head>
    <body>
        <div id="select_area">
        </div>
        <div id="disp_area">
           <div id="color_disp">
               <span></span>
           </div>
           <div id="color_text">
               <span></span>
           </div>
        </div>
    </body>
</html>

sample

sanple 内容は基本的に 「簡易カラーピッカー」 のままです。
但し、色を選択したときの取得文字列を #ffffff での表示に変更しました。

今回のクロスブラウザ対策は以下の状況を共通の形式にするための処理です。
例)
■取得時
 Opera #ffffff
 その他 rgb(255,255,255)
 ↓
■返還後
 全ブラウザ #ffffff

正直 Opera 利用者の割合とか考えると必要かなぁとは思います。
ですが Opera 対策というよりも #ffffff の形式のほうが好みなので対応したほうがいいですね。

jQuery はここからダウンロードしてください。

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。