JavaScriptのロールオーバーについて

このQ&Aのポイント
  • JavaScriptを使用して、マウスオーバーした<li>要素内の.dateクラスのフォント色を変える方法をご教示ください。
  • マウスオーバーしている<li>要素内の.dateクラスのみフォント色を変える方法を教えてください。
  • JavaScriptで<li>要素のマウスオーバー時にのみ.dateクラスのフォント色を変更する方法を教えてください。
回答を見る
  • ベストアンサー

js ロールオーバーについて

初めまして。javascriptについてお聞きします。 下記HTMLのように、メニューを<ul>で並べております。 javascriptで<li>にマウスオーバーした時に、 内包しているクラスの.dateのフォント色を変えようと、jsを下記のように書きました。 するとマウスオーバーしている<li>の.dateだけではなく、 全ての.dateのフォント色が変化してしまいました。 色々試しましたが、上手くいきません。 マウスオーバーしている部分にだけ、変化させるにはどうしたら良いでしょうか。 どうぞよろしくお願いいたします。 ■js $(function(){ $(".Menu li").mouseover(function(){ $(".date").css("color","white"); }).mouseout(function(){ $(".date").css("color","black"); }); }); ■html <div class="Menu"> <li> <p class="date">2012/3/13</p> <p>テキストテキストテキストテキスト</p> </li> <li> <p class="date">2012/3/12</p> <p>テキストテキストテキストテキスト</p> </li> <li> <p class="date">2012/3/11</p> <p>テキストテキストテキストテキスト</p> </li> </div>

質問者が選んだベストアンサー

  • ベストアンサー
  • hig77
  • ベストアンサー率100% (2/2)
回答No.1

jsの3行目と4行目を以下のようにして下さい。 $(".date",this).css("color","white"); $(".date",this).css("color","black"); 以下でも同じ結果になります。 $(this).find(".date").css("color","white"); $(this).find(".date").css("color","black"); $(".date") だと、対象のオブジェクトは3個なので、3個全てが変わります。 子要素の指定が必要です。

middymiddy
質問者

お礼

上記の通りに試したところ、無事に解決できました。 ありがとうございました!

関連するQ&A

  • メニューボタン画像のロールオーバー時の処理について

    以下のスクリプトを用いてドロップダウンメガメニューを作成しています。 jQuery MegaMenu Plugin http://www.geektantra.com/2010/05/jquery-megamenu-2/ このメニューのボタンを画像にし、ロールオーバー時には透過して背景が見えるようにしたいと考えています。 --------------------------------------- <script type="text/javascript" src="/_js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="/_js/jquery.megamenu.js"></script> <script type="text/javascript"> $(function() { .find('img.btn').hover( function(){ $(this).stop().animate({'opacity' : '0'}, 200); }, function(){ $(this).stop().animate({'opacity' : '1'}, 500); } ); }); </script> <ul id="megamenu"> <li> <a><img src="../_images/btn_01.jpg" alt"ボタン1" class="btn"/></a> <div>コンテンツA</div> </li> <li> <a class="mm-item-link-hover"><img src="../_images/btn_02.jpg" alt"ボタン2" class="btn"/></a> <div>コンテンツB</div> </li>↑※このメニューにロールオーバーしている場合、class="mm-item-link-hover"がaに追加される。 <li> <a><img src="../_images/btn_03.jpg" alt"ボタン3" class="btn"/></a> <div>コンテンツC</div> </li> </ul> ------------------------------------- 上記のように記述して、ボタン画像にロールオーバーするとドロップダウンメニューが出現、さらにそのボタン画像が透過し、背景が見えるようにできました。 しかし、画像からマウスをおろしてドロップダウンメニューに移動すると透過が戻ってしまいます。 jquery.megamenu.jsの処理で、ドロップダウンメニューにロールオーバーしている間、class="mm-item-link-hover"がaに追加されています。 これを利用して、a.mm-item-link-hoverのなかのimg.btnを透過GIFに置き換えたいと思いましたが、うまく行きません。 【追加したスクリプト】 $(function() { $("a.mm-item-link-hover").each(function() { $("img.btn").attr("src", "/img/blank.gif"); }); }); 上記の処理の方法は、考え方としては正しいでしょうか? また、その場合のスクリプトはどのように書けばよろしいでしょうか? ご教授頂けると非常に助かります。

  • jqueryを使ってポップアップを作ろうとしています。

    jqueryを使ってポップアップを作ろうとしています。 アイコンにマウスオーバーでポップアップ表示、ポップアップの×をクリックしてポップアップ削除という動きまではできています。 しかしマウスオーバーのアイコンはul liの中にあるのに、ポップアップはulの外に置かれているため、thisが使えず、アイコンにマウスオーバーすると全てのポップアップが表示されてしまいます。 これをマスウオーバーしたアイコンのポップアップのみ表示できるようにしたいです。 下記にソースになります。表示させたいのはアイコン02にカーソルを合わせた場合のみになります。 よろしくお願いいたします。 JS ---------------------------------------------------------------- $(function(){ $(".popup").hide(); $(".box ul li.icon02").mouseover(function(){ $(".popup").fadeIn("fast").css({ top:10+"px", left:-95+"px"}); }); $(".popup img.closed").click(function(){ $(".popup").fadeOut("fast"); }); }); html ---------------------------------------------------------------- <div class="box"> <div class="boxIn"> <ul> <li class="ico01"><a href="#"><img src="アイコン1url" /></a></li> <li class="ico02"><a href="#"><img src="アイコン2url" /></a></li> <li class="ico03"><a href="#"><img src="アイコン3url" /></a></li> </ul> <!--▼pop-up部分--> <div class="popup"> <p>●●<img src="クローズボタンurl" alt="close" width="12" height="12" class="closed" /> </p> <div class="popInner"> <p>ポップアップの中身</p> <!--#popInner--> </div> <!--#popup--> </div> <!--▲pop-up部分ここまで--> <!--#boxIn--> </div> <!--#box--> </div> 以下 <div class="box"> ~~同じ構成要素の繰り返し。

  • Tumblrでjsが適用されない

    Tumblrをカスタマイズしています。 webデザインド素人です。ご教授いただけますと助かります。 http://codepen.io/gabrielbrettas/pen/vtmdE このサイトのメニューをつけたいと思い、コピペしてみたのですがjsが適用されず、 http://shisakusonoic.tumblr.com/ ↑パスワードは3212173です このように、ただの文字だけになってしまいます。 何が問題なのでしょうか? どうぞよろしくお願いいたします。 下記、ソースコードです。 <!doctype html> <html> <head> <style> body { /* 画像ファイルの指定 */ background-image: url(URL); /* 画像を常に天地左右の中央に配置 */ background-position: center center; /* 画像をタイル状に繰り返し表示しない */ background-repeat: no-repeat; /* コンテンツの高さが画像の高さより大きい時、動かないように固定 */ background-attachment: fixed; /* 表示するコンテナの大きさに基づいて、背景画像を調整 */ background-size: cover; /* 背景画像が読み込まれる前に表示される背景のカラー */ background-color: #464646; } * {text-decoration: none; transition: all 0.3s; transform: all 0.3s; } body {padding: 50px;} li {list-style: none;} .menu { display: inline-block; position: relative; .btn { display: block; cursor: pointer; padding: 10px; .bar { width: 30px; height: 5px; background: #000; margin-bottom: 5px; } .bar:last-child {margin-bottom: 0px;} } nav { position: absolute; left: 10px; background-color: whitesmoke; border: 3px solid #000; visibility: hidden; opacity: 0; -webkit-transform: scale(0.7); a { font-family: 'Open Sans'; color: #222; padding: 10px 20px; display: block; border-bottom: 1px solid #ddd; white-space: nowrap; } li:last-child a {border-bottom: 0px;} a:hover {color: whitesmoke; background: #000;} } .menu_show { visibility: visible; opacity: 1; -webkit-transform: scale(1); } } </style> </head> <body> <div class="menu"> <div class="btn"> <div class="bar"></div> <div class="bar"></div> <div class="bar"></div> </div> <nav id="nav"> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Clients</a></li> <li><a href="#">Contact Us</a></li> </ul> </nav> </div> <script type="text/javascript"> $(document).ready(function(){ $('.menu .btn').on('click', function() { $('#nav').toggleClass('menu_show'); }); }); </script> </body> </html>

  • リモートロールオーバーを教えてください。

    cssだと次のような感じで、作成したのですが、なぜか番号の挙動がおかしいので、JavaScriptに切り替えたいと思います。実際には説明の場所には写真が入ります。ポイントは、リモートロールオーバーで、写真の内容がバックグラウンドで番号付きリスト側にも強調されることです。 どのようにすればいいのか教えてください。 javaScriptでがんばりたいですが、Jqueryの記述も比較の為教えてくだされば幸いです。 どうぞよろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <head> <title>test</title> <style type="text/css"> .menu li span { display:none; padding:5px; } .menu li:hover{ display:block; background:#cccccc; } .menu li:hover .setumei { display:block; position:absolute; top:20px; left:7em; width:500px; height:300px; background:#ffffff; } </style> </head> <body> <ol class="menu"> <li>メニュー1<span class="setumei">オンマウス時に表示される説明1。</span></li> <li>メニュー2    <span class="setumei">オンマウス時に表示される説明2。</span></li> <li>メニュー3    <span class="setumei">マウスが乗った時に表示される説明3。</span></li> <li>メニュー4    <span class="setumei">マウスが乗った時に表示される説明4。</span></li> </ol> </body> </html>

  • jquerで画像の入れ替えをしたいのですが、上手く行かず困っております

    jquerで画像の入れ替えをしたいのですが、上手く行かず困っております。 ブロックを丸ごとクリック範囲にするため、透過gifをかぶせています。 htmlは下記のようになりますが、マウスオーバーで背景と、<p class="ここも変更">に入っている画像を入れ替えたいです。 <ul> <li> <div class="data"> <h3>タイトル</h3> <p>~</p> <p class="a">~</p> <p class="ここも変更"><img src="***.png" /></p> </div> <img src=".**.jpg" /> <a href="***.html" class="sp"><img src="sp.gif" /></a> </li> </ul> 背景についてはスクリプトができております。 liにクラスをつけて、cssで背景を書き換えています。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ $(function(){ $("body#list.index #contents ul li a.sp").mouseover(function(){ $(this).parents('li').addClass("over") ; }).mouseout(function(){ $(this).parents('li').removeClass("over"); }); }); ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ しかし、<p class="ここも変更">の部分について、セレクタの指定がうまくできずにいます。 よろしくお願いいたします。

  • jQueryでホバーされていない要素を半透明にする

    http://www.skuare.net/test/jopacity_show.html 下記のようにスクリプトがありますが、いまいちわかりません。 画像の場合 <li><img src=hoge.gif title="menu 1"></li>でよろしいのでしょうか? <ul id="menu"> <li>menu 1</li> <li>menu 2</li> <li>menu 3</li> <li>menu 4</li> </ul> 「menu 1」にマウスオーバーされた際に、ほかの2-4が半透明になるイメージです。 まずはjQueryからjquery.jsをダウンロードします。 その後、以下のようなscriptを記述します。 <script type="text/javascript" src="jquery-1.3.2.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#menu').children().hover(function() { //#menuの子要素にマウスオーバーした時の処理 $(this).siblings() //その要素の兄弟要素をすべて取ってきて .stop().fadeTo(500,0.5); //500ミリ秒かけて、opacity0.5まで変化させます }, function() { //マウスアウトの処理 $(this).siblings() .stop().fadeTo(500,1); //戻します }); }); </script>

  • jsについて

    html外部jsファイルを読むとき1行目と2行目違う内容を同時読み取る場合どうしたらいいですか html <html> <head> <meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> <style media="screen" type="text/css"></style> <SCRIPT type="text/javascript" src="1.js"></SCRIPT> <body bgcolor="aliceblue" onLoad="dismsg1(0)"> <SCRIPT language="Javascript"> <!-- //イメージ、文章の切り替え function dismsg1(num){ document.all("mymsg").innerHTML=eval("msg"+[num]); document.all("mymsg1").innerHTML=eval("msg"+[num]); }; // --> </SCRIPT> <div id="mymsg"></div> <div id="mymsg1"></div> </body> </html> jaデータ var msg0="<font style='color:#800000;font-size:10pt'> 一行目</font>"; var msg1="<font style='color:#800000;font-size:10pt'> 二行目</font>"; ブログラム終了 上記の場合は"一行目"二回繰り返し表示するだけ msg1とmag2の内容を一行目と二行目表示したいです よろしくお願いします

  • jQueryでスマホ向けページのロールオーバー

    スマートフォン向けページで、記事をタップすると その記事にグレーのオーバーレイがかかり、 指が外れるとオーバーレイが消える効果をつけたいと思います。 CSSだけでは難しそうでしたので、jQueryで空のdivを作成する 方法を考えました。 背景を透過した空のdivを生成するところまではできたのですが、 それを外すことがどうしてもできません。 Javascriptの基本的な文法がわかっていないせいだと思います…。 下記がうまく行かなかったソースです。 removeの記述に問題があるのだと思いますが ご教授の程よろしくお願い致します。 また、この程度JSを使わなくてもCSSだけでできるようでしたら その方法でもかまいませんので教えていただければと思います。 ■JS <script> $(function($){ $( "#hoge a" ) .bind( 'touchstart', function(){ $( this ).prepend( "<div></div>" ); }).bind( 'touchend', function(){ $( this ).unbind(); }).bind( 'touchend', function(){ $( "<div></div>" ).remove( ); }) }); </script> ■HTML <section id="hoge"> <a href="#"> <article> <figure><img src="image.png" width="100" height="120"></figure> <p>テキストテキスト</p> </article> </a> </section> ■CSS #hoge article { position: relative; } #hoge article figure { z-index: 1; } #hoge a div { background-color: #000; opacity: 0.3; width: 100px; height: 150px; position: absolute; top: 0; left: 0; z-index: 2; }

  • [JS or CSS]マウスオーバーで画像切り替え

    初めまして。 ホームページを作成中なのですが、 メインビジュアル部分の画像表示で悩んでおります。 求めている動作としては以下の通りです。 ・グローバルナビにマウスオーバーすると、  すぐ下のボックス(どこでも)に画像が表示される。 ・マウスが離れると画像が消える。 ・画像の表示(切り替え)はフェードで行う。 簡単なソースを書くとこんな感じです。 <ul class="global_navi">/* グローバルナビ */  <li><a href="a.html"><img src="hoge01.png" /></a></li>  <li><a href="b.html"><img src="hoge02.png" /></a></li>  <li><a href="c.html"><img src="hoge03.png" /></a></li> </ul> <div class="main_graphic">  /* ここに画像がフェードイン&フェードアウトする */ </div> 近い動作をするjsを見つけたのですが、下記2点のjsを足して2で割った様なイメージです。 ■画像のマウスオーバーで、離れた位置に拡大画像を表示する http://css-eblog.com/csstechnique/css-remote-rollover.html ■メニューにマウスオーバーするとメイン画像が切り替わるナビゲーションjQueryプラグイン「ImageNavigation」 http://blog.net-king.com/2010/10/06/%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AB%E3%83%9E%E3%82%A6%E3%82%B9%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%81%99%E3%82%8B%E3%81%A8%E3%83%A1%E3%82%A4%E3%83%B3%E7%94%BB%E5%83%8F%E3%81%8C%E5%88%87/ 動作イメージでは前者ですが、フェードができません。 ビジュアルイメージでは後者ですが、マウスを離しても画像が消えません。 近い動作をするjs、もしくはcssテクニックをご存知であればご教授頂けないでしょうか。 お手数ですが、よろしくお願い申し上げます。

    • ベストアンサー
    • CSS
  • IE でカラム落ちします。

    CSS 初心者です。 pagebodyの中に 2カラム(mainContentとsidebar1)レイアウトをしたいのですが、 IE6だけ左のmainContentがカラム落ちしてしまいます。 検索して色々試したのですが、私には理解ができず。 教えていただけると助かります。 ーーーーーcssーーーーーーー #container { width: 800px; background: #FFFFFF; margin: 0 auto; text-align: left; } #pagebody{ width: 780px; background: #D6E3FF; } #mainContent { float: leftt; width:600px; padding:0; background: #fff; } #sidebar1 { float: right; width:170px; background: #D6E3FF; } -------html------------- <body> <div id="container"> <!--navi上--> <script src="../js/h_navi.js" type="text/javascript"></script> <div id="pagebody"> <div id="sidebar1"> <ul> <li id="menu1"><a href="#">専属プロヂュース</a></li> <li id="menu2"><a href="#">出演依頼</a></li> <li id="menu3"><a href="#">メンバー紹介</a></li> <li id="menu4"><a href="#">ニュース</a></li> <li id="menu5"><a href="#">最新ニュースはこちらから</a></li> </ul> </div> <!-- end #sidebar1 --> <div id="mainContent"> <h1> メインコンテンツ </h1> <p>テキスト</p> <p>テキスト.</p> <h2>見出し </h2> <p>テキスト</p> <!-- end #mainContent --></div><br class="clearfloat" /></div><script src="../js/footer.js" type="text/javascript"></script> </div> </body> よろしくお願いします。

    • 締切済み
    • CSS

専門家に質問してみよう