
javascriptで背景色に応じて文字色を変更したいと思っています。
たとえば背景色が黒なら文字は白。反対に背景色が白なら文字色は黒に。背景色が中間の色であれば白寄りの色か黒寄りの色か判定して文字色を変えたいのですがjavascript初心者の為どうコードを書けばいいのかわかりません。
どうぞよろしくお願い致します。

回答2件
あなたの回答
tips
プレビュー
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。
Q&A
解決済
2回答
4096閲覧
退会済みユーザー
総合スコア0
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。
0グッド
2クリップ
投稿2015/01/09 04:07
javascriptで背景色に応じて文字色を変更したいと思っています。
たとえば背景色が黒なら文字は白。反対に背景色が白なら文字色は黒に。背景色が中間の色であれば白寄りの色か黒寄りの色か判定して文字色を変えたいのですがjavascript初心者の為どうコードを書けばいいのかわかりません。
どうぞよろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
こんなライブラリもあるようです。
投稿2015/01/09 09:55
総合スコア1679
0
jsdoitで作ってみました。
http://jsdo.it/utun001/yn2f
Javascript部分はこんな感じ。
lang
1var halfColorNum = (255 * 3) / 2; 2$(document).ready(function(){ 3 $(window).keyup(function(e){ 4 $('body').css("backgroundColor", "#"+$('#backgroundcolor').val()); 5 var buf = $('body').css("backgroundColor").toString(); 6 var bgcArray = $('body').css("backgroundColor").toString().replace("rgb(","").replace(")","").split(","); 7 var sumColorNum = 0; 8 bgcArray.forEach(function(val){ 9 sumColorNum += parseInt(val, 10); 10 }); 11 if(halfColorNum > sumColorNum){ 12 $('body').css({"color": "#FFFFFF"}); 13 } else { 14 $('body').css({"color": "#000000"}); 15 } 16 }); 17});
単純にkeyupイベント時にinputから文字列を読み込んで、background-colorへ設定。
background-colorのRGBをそれぞれ足して、数値が「382.5」より大きいか、小さいかで文字色を判断しています。
尚、jQueryを利用しているのでご注意ください。
以上、ご参考になれば幸いです。
投稿2015/01/09 09:52
総合スコア384
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/01/14 14:19
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/09 10:05
退会済みユーザー
2015/01/14 14:18