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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

640閲覧

javascriptでクリックするごとにhoverの色を変えたい

amby

総合スコア40

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/12/28 14:48

実現したいこと

ボタンのhoverの色をクリックするごとに変えたいです。
具体的には初期は黒色のボタンでカーソルをあてると青色にhover、クリックすると黒色が緑色にhoverするようにしたいです。(また、そこから再度クリックすると初期の状態に戻るようにしたい)
どのようにコーディングすれば良いかアドバイスいただきたいです。

HTML

HTML

1<a href="#" id="button_js" class="button">button</a>

CSS

CSS

1.button{ 2 display: inline-block; 3 text-decoration: none; 4 background: #000000; 5 font-size: 30px; 6 color: #FFF; 7 width: 150px; 8 height: 150px; 9 line-height: 150px; 10 border-radius: 50%; 11 text-align: center; 12 transition: .4s; 13} 14 15.button:hover{ 16 background: #0000ff; 17} 18 19.button_js:hover{ 20 background: #008000; 21}

javascript

javascript

1document.getElementById('button_js').addEventListener('click',function(){ 2 document.getElementById('button_js').style.background='black'; 3});

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

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

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

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

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

guest

回答2

0

ベストアンサー

アドバイスというかほぼ答えな実装手順ですが
0. 背景緑にするclass(style)を定義する ※仮に**.bg-green**という名前でも付ける
0. クリックするごとに作ったclassを付けたり外したりする

で、classの付け外しにはelement.classList.toggle(クラス名);を利用出来ます
他にも調整するべき点が見つかると思うので必要に応じて調整しましょう

追記

スタイルシートの適用にはパワーバランスを考えなければいけません
という事で以下のようにコメントに書かれていたコードを修正しました

html

1<div id="button" class='button'>button</div>

css

1#button{ 2display: inline-block; 3text-decoration: none; 4font-size: 30px; 5color: #FFF; 6width: 150px; 7height: 150px; 8line-height: 150px; 9border-radius: 50%; 10text-align: center; 11transition: .4s; 12cursor: pointer; 13} 14 15.button{ 16background: #000000; 17} 18.button:hover{ 19background: #0000ff; 20} 21 22.button_js:hover{ 23background: #008000; 24}

js

1{ 2const button = document.getElementById('button'); 3button.addEventListener('click', () => { 4 button.classList.toggle('button_js'); 5 }); 6}

具体的には

  • backgroundをclassでの指定に切り出しました。
  • toggleの誤りの修正

elementというのはgetElementByIdなどで取得出来るelementの事です。

投稿2020/12/28 15:13

編集2020/12/29 15:15
hentaiman

総合スコア6389

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

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

amby

2020/12/29 14:31

ありがとうございます。下記のように修正してみました。ただうまく作動せず、間違っている点ございますでしょうか。。。 ●HTML <div id="button">button</div> ●CSS #button{ display: inline-block; text-decoration: none; background: #000000; font-size: 30px; color: #FFF; width: 150px; height: 150px; line-height: 150px; border-radius: 50%; text-align: center; transition: .4s; cursor: pointer; } #button:hover{ background: #0000ff; } .button_js:hover{ background: #008000; } ●JavaScript 'btn-change' { const button = document.getElementById('button'); button.addEventListener('click', () => {  button.element.classList.toggle('button_js');  }); }
hentaiman

2020/12/29 15:16

idでのスタイル指定はクラスより重い!
amby

2020/12/30 07:36

大変丁寧にご教示いただき誠にありがとうございました。。。!!!
guest

0

javascript

1window.addEventListener('DOMContentLoaded', ()=>{ 2 document.querySelectorAll('.button').forEach(x=>{ 3 x.addEventListener('click',()=>{ 4 x.classList.toggle('button_js'); 5 }); 6 }); 7});

投稿2020/12/29 00:30

yambejp

総合スコア114572

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問