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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

1回答

1128閲覧

特定の写真上でのマウスオーバーによる効果

kuroishi

総合スコア53

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クリップ

投稿2018/05/07 15:58

お世話になっております。

今回、解決したい問題は同じclassでしている要素に関して、特定の写真の上に来たらその写真の詳細が表示されるシステムを作ろうと考えています。

HTML

<div style="display: flex; align-items: center; justify-content:center; margin-top: 40px; width: 80%; margin-left: auto; margin-right: auto; flex-wrap: wrap;"> <div class="member" id="member_1" alt="1"> <div class="member_sub" alt="1">a</div> <div class="member_sub" alt="1">b</div> <div class="member_sub" alt="1">c</div> </div> <div class="member" id="member_2" alt="2"> <div class="member_sub">a</div> <div class="member_sub">b</div> <div class="member_sub">c</div> </div> <div class="member" id="member_3" alt="3"> <div class="member_sub">a</div> <div class="member_sub">b</div> <div class="member_sub">c</div> </div> <div class="member" id="member_4" alt="4"> <div class="member_sub">a</div> <div class="member_sub">b</div> <div class="member_sub">c</div> </div> <div class="member" id="member_5" alt="5"> <div class="member_sub">a</div> <div class="member_sub">b</div> <div class="member_sub">c</div> </div> </div>

CSS

.member{ width: 250px; height: 250px; display: flex; margin: 10px; background-size: cover; background-position: center; background-image: url("img/member.JPG"); align-items: flex-end; flex-wrap: wrap; align-content: flex-end; text-align: center; } .member_sub{ width: 100%; height: 30px; background-color: rgba(0,0,0,0.30); color: white; align-items:center; display: flex; justify-content: center; display: block; opacity: 0; }

JavaScript

$(function(){ /*$(".member").hover( function () { $(".member>div").css("opacity","1"); }, function () { $(".member>div").css("opacity","0"); } );*/ var number = $(".member").attr('alt'); var mouseover_base =$('#member_'+number); var mouseover_pic =$('.member_sub'); $(mouseover_base).mouseover(function () { $('mouseover_pic[alt=number]').css("opacity","1"); }); $(mouseover_base).mouseout(function () { $('mouseover_pic[alt=number]').css("opacity","0"); }); });

かなり非常識なコードを書いている自覚はあります。自分なりに考えた仕組みとして
divタグにつけた#member_(数字)についてマウスオーバーで指定。
数字はdivタグ内にあるaltの属性で判断。
そうすると、複数の#member_(数字)ある(他の親要素にもある).member_subについて作用しないよう、.member_subのalt属性と#member_(数字)のalt属性が同じものだけに動作させる
ことによって複数ある.member_subに作用せず、マウスオーバーされた画像のみの.member_subを表示できるかと思ったのですがうまく反応しません。
すこしのヒントでもいただけると助かります。よろしくお願いします。

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

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

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

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

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

kei344

2018/05/07 16:03

「写真」のコードも提示してください。
kuroishi

2018/05/07 16:11

写真ですが、CSSにてbackground-imgとして指定している.memberのdiv要素になります。
guest

回答1

0

JavaScriptを使う必要が無いような。

CSS

1.member:hover .member_sub{ 2 opacity: 1; 3}

追記:

js

1$( ".member" ).hover( 2 function () { 3 $( this ).find( ".member_sub" ).css( "opacity", "1" ); 4 }, 5 function () { 6 $( this ).find( ".member_sub" ).css( "opacity", "0" ); 7 } 8);

投稿2018/05/07 16:23

編集2018/05/07 16:56
kei344

総合スコア69407

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

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

kuroishi

2018/05/07 23:25

そうすると、他の.mamber_subまで反応(#mamber_数字が複数あるので)しちゃうので、どうにかしたいと考えています。
kei344

2018/05/08 03:31

#member_5に5個も.mamber_subがあるんですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問