質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

515閲覧

文字の色をセルごとに背景の色と補色になるように常に色を変えたい。

ZhenZeZhang

総合スコア33

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/02/19 07:37

編集2019/02/19 08:03

前提・実現したいこと:JavaScriptです。文字の色をセルごとに背景の色と補色になるように常に色を変えたい。(JS初心者です。)

RGB色をセルを使って表すプログラムを作っています。
知識の不足でCの関数の知識を使って関数を代入してみたがうまくいかなかった。
■■な機能を実装中に以下のエラーメッセージが発生しました。
debugしてみたが、何も現れず。(正しく動作でキレイナイところが以下のプログラムとなります)

ce.style.color = "cple(x,y,z)";

発生している問題・エラーメッセージ

debugに失敗。(現在コアダンプの可能性なところを探し中)

エラーメッセージ がない!!!

該当のソースコード

ここで全体コードを示す。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>20190219(Tue)For_Color</title> <style> table {border-collapse:collapse;} td{width:30px: height:20px; border:solid 0px; text-align:center;} </style> </head> <body> <table id="colo"></table> <script> function cple(r, g, b) { var ma = Math.max(r, (Math(g, b))); var mi = Math.min(r, (Math(g, b))); var su = ma + mi; var nr = su - r; var ng = su - g; var nb = su - b; var vovo = "rgb(" + nr + "," + ng + "," + nb + ")"; return vovo; } var c = document.getElementById("colo"); var x = 0, y = 256, z = 256; var ro, ce, te; for (; x < 257; x += 4) { ro = c.insertRow(-1); for (y = 256; y > 0; y -= 4) { ce = ro.insertCell(-1); te = "RGB(" + x + "," + y + "," + z + ")"; z = 256 - x; ce.textContent = te; ce.style.backgroundColor = te; ce.style.color = "cple(x,y,z)"; } } </script> </body> </html>

試したこと

javascript 関数を代入 style のキーワードでぐぐって見た。
任意の要素(ブロックなど)の背景色を動的に変更する方法

で調べてみた。

補足情報(FW/ツールのバージョンなど)

function cple のコード

function cple(r, g, b) { var ma = Math.max(r, (Math(g, b))); var mi = Math.min(r, (Math(g, b))); var su = ma + mi; var nr = su - r; var ng = su - g; var nb = su - b; var vovo = "rgb(" + nr + "," + ng + "," + nb + ")"; return vovo; }

現在コアダンプなどの可能性を探して試行錯誤しています。
質問内容に不具合があればコメントをお願いします。
ありがとうございます。

更新

更新 

var ma = Math.max(r, (Math(g, b)));
var mi = Math.min(r, (Math(g, b)));
のバグ具を発見。現在、色は変わったが補色ではないようです。。。美術は成績よかったが補色かどうか疑わしい。

[JavaScript] 文字を太字にする
補色のRGB値をJavaScriptで計算

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

rgb()などCSSで定義された関数を除いて、CSSの属性値として関数を直接指定することはできません(単に無視されます)。

ce.style.color = cple(x,y,z);と、返り値を指定してみたらどうなりますでしょうか。

投稿2019/02/19 07:40

maisumakun

総合スコア145062

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ZhenZeZhang

2019/02/19 07:42

解決することができました。問題が再び出てきました。debug中。。。
guest

0

自己解決

。。。。。。。。。。。。。

投稿2019/02/19 07:43

編集2019/02/19 07:51
ZhenZeZhang

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/19 07:47

質問は編集できるので「解決のための回答」でないなら質問に追記してください。
ZhenZeZhang

2019/02/19 07:50

わかりました。編集にかかります。
m.ts10806

2019/02/19 07:52

回答は削除依頼を出すと良いです
ZhenZeZhang

2019/02/19 07:56

本メッセージは今後僕の質問ページの質の向上につながるので保存をしたいです。 編集をして保存したいと思います。:)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問