JavaScript
テキスト動的グレースケール化2015/06/23
テキストの色をグレースケールで動的に変化させてみた
dynamic-grayscale-2.jsを読み込むと、dynamic-grayscale-2クラスの付いたタグ要素のテキストの色を一定時間ごとに変化させる
輝度の増減にはcos関数を利用
$(function(){ // 初期化 var dgss = $(".dynamic-grayscale-2"); // dynamic-grayscale-2クラスの要素を取得 var spans = []; // span要素群を初期化 for (var i = 0; i < dgss.length; i++) { // dynamic-grayscale-2クラスの要素ごとに var str = $(dgss[i]).text(); // テキストを取得 $(dgss[i]).text(""); // テキストを削除 spans[i] = []; // span要素群を作成 for (var j = 0; j < str.length; j++) { // テキストを1文字ずつ var span = $("<span>"); // span要素を作成 span.text(str[j]); // テキストを設定 $(dgss[i]).append(span); // span要素を追加 spans[i][j] = span; // spansに格納 } } var cvt = Math.PI/180; // ラジアン変換器 var angle = 180; // 角度を初期化 // 以下を0.1秒ごとに実行 (function(){ for(var i=0; i<spans.length; i++){ // dynamic-grayscale-2クラスの要素ごとに for(var j=0; j<spans[i].length; j++){ // span要素ごとに var lightness = Math.floor((Math.cos((j*9+angle)*cvt)+1)*50); // 輝度を作成 $(spans[i][j]).css("color","hsl(0,0%," + lightness + "%)"); // 色を更新 } } angle += angle < 0 ? 360 : -20; // 角度を更新 setTimeout(arguments.callee, 100); // 0.1秒ごとに実行 })(); });