ある一部分のHTML要素(.head__up#targe)を、ボタンを押したらランダムで色が変更できるようにしたいです。必ず守るべき使用として、色変えの要素はCSSに記述した値を使用するのではなく、配列内にあるカラー要素を選択してランダムで色が変わるように実装したいと考えています。
最終的に、入力したカラーからランダムに値が表示されるようにしたいため、上記のやり方でおこなっております。
もし、分かる方や私のコードを修正できる方が見えましたら、ご教授の程、宜しくお願い致します。
index.html.haml
1コード 2.warp 3 .bodies 4 .head 5 .head__up#target{style: "white"} 6 .head__down 7 %form 8 %input{:type => "button", :value => "更新"}/ 9 .post 10 = link_to "新規登録", new_product_path, class: "btn-default btn-gray"
JSに関しては、検証を行うと.addEventListenerでnullと表示されます
コード document.querySelector('button').addEventListener('click', () => { const targetNode = document.getElementById('target'); if (targetNode.style.contains('white') === true) { targetNode.style.remove('white'); } else { var colors = new Array( "yellow", "red", "blue", "green", "black", "brown", "gray", "orange", "purple", "white"); var index = Math.floor(Math.random() * colors.length); targetNode.style.add = colors[index]; } });
CSSのコードは必要ないですが、一応掲載させて頂きます
index.css
1コード 2.warp{ 3 background-color: #f6f6f6; 4 min-width: 650px; 5} 6.bodies{ 7 margin: 30px auto 0; 8 background-color: #fff; 9 height: 600px; 10 width: 70%; 11 overflow: scroll; 12 13} 14 15.head{ 16 border-bottom: 1px solid #f6f6f6; 17 align-items: center; 18 display: flex; 19 flex-direction: column; 20 21} 22.head__up{ 23 display: inline-block; 24 width: 100px; 25 height: 50px; 26 border-radius: 50% / 100% 100% 0 0; 27 border:1px #000000; 28 border-style: solid; border-width: thin; 29} 30#target{ 31 background-color: white; 32} 33 34.head__down{ 35 display: inline-block; 36 width: 100px; 37 height: 50px; 38 border-radius:50%/ 0 0 100% 100%; 39 background: #F0DDC3; 40 41} 42
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/21 05:52