🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1681閲覧

Uncaught Error: unknown format: [object HTMLHeadingElement]の解決方法が分かりません。

cafe1111

総合スコア62

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/12/05 07:12

■やりたいこと
chroma.jsを使ってランダムに色を取得し、気になった色が合ったらロックし、
ランダムに色を取得するためアイコンの色は背景が暗かったら白、明るかったら黒に変えるようにする。

■問題点
問題なく作動しているのですが、何故か色をロックした状態でランダムに色を取得するとタイトルのエラーが出ます。

html

1<div class="colors"> 2 <div class="color"> 3 <h2>Hex</h2> 4 <div class="controls"> 5 <button class="lock"><i class="fas fa-lock-open"></i></button> 6 </div> 7 </div> 8</div>

js

1const colorDivs = document.querySelectorAll(".color"); 2 3lockButton.forEach((button, index) => { 4 button.addEventListener("click", (e) => { 5 lockLayer(e, index); 6 }); 7}); 8 9function lockLayer(e, index) { 10 const lockSVG = e.target.children[0]; 11 const activeBg = colorDivs[index]; 12 activeBg.classList.toggle("locked"); 13 14 if (lockSVG.classList.contains("fa-lock-open")) { 15 e.target.innerHTML = '<i class="fas fa-lock"></i>'; 16 } else { 17 e.target.innerHTML = '<i class="fas fa-lock-open"></i>'; 18 } 19} 20 21function randomColors() { 22 // 23 initialColors = []; 24 colorDivs.forEach((div, index) => { 25 const hexText = div.children[0]; 26 const randomColor = generateHex(); 27 // Add it to the array 28 if (div.classList.contains("locked")) { 29 initialColors.push(hexText); 30 return; 31 } else { 32 initialColors.push(chroma(randomColor).hex()); 33 } 34 35 // 背景の色を変える 36 div.style.backgroundColor = randomColor; 37 hexText.innerText = randomColor; 38 39 // 明暗によってテキストの色を変える 40 checkTextContrast(randomColor, hexText); 41 }); 42 // Reset Inputs 43 resetInputs(); 44 // Check For Button Contrast 45 lockButton.forEach((button, index) => { 46 checkTextContrast(initialColors[index], button); 47 checkTextContrast(initialColors[index], button); 48 }); 49} 50 51function checkTextContrast(color, text) { 52 const luminance = chroma(color).luminance(); 53 if (luminance > 0.5) { 54 text.style.color = "black"; 55 } else { 56 text.style.color = "white"; 57 } 58}

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

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

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

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

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

guest

回答1

0

ベストアンサー

initialColors配列には色コード文字列を格納したいのではないでしょうか?
いまのコードの場合、ロック中は

javascript

1const hexText = div.children[0]; 2...中略... 3initialColors.push(hexText); 4...中略... 5hexText.innerText = randomColor;

となっているので、h2要素が格納されてしまいますね。
それが、chroma()の引数に指定されてしまうので、
表題のようなエラーになってしまいます。

↓これでどうでしょうか?

javascript

1initialColors.push(hexText.innerText);

投稿2020/12/05 12:34

gpsoft

総合スコア1323

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

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

cafe1111

2020/12/06 02:07

ご回答ありがとうございます。 無事解決できました!! 何がいけないのか分からなくて、積んだかと思いましたが本当に助かりました! ありがとうございました????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問