アプリ版:「スタンプのみでお礼する」機能のリリースについて

cssまたはjqueryの件で質問です。



背景画像をマウスオーバーで「noneimage(背景画像なし)」に設定しているとして、

その後マウスアウトしても画像が消えたまま(マウスオーバー状態の効果を持続)にするにはどのようにすればいいでしょうか?



とりあえずcssで「:hover」でbackground-image:noneにしていますが、

これだとカーソルがそれた時点で背景画像が出てきてしまいます。



経験が浅いのでcssかjqueryかどちらを使えばいいかわかりませんが

どなたか例を教えて頂けますと幸いです。



どのようにしたいか図で示したものを添付しますので
参考にしてください。



よろしくお願い致します。

「マウスアウト後も画像が消えたままにしたい」の質問画像

A 回答 (5件)

No.2,No3です。


 面白そうなので、逆三角形の画像(2色、背景は透明)は用意してください。
 画像はサブ項目の数により勝手に伸縮します。
 画像を隠そうが消そうが濃くしようが・・お好きに・・・簡単ですが、色々と面白い仕組みになっています。これにCSS3のTransitionsなどを組み合わせると喜ばれるでしょう。
※ただし、実用面では大いに?????です。お遊び程度に考えてください。

 いちおうHTML4.01strict+CSS3です。
★Another HTML-lint 5 ( http://www.htmllint.net/en/html-lint/htmllint.ht … )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
※タブは_に置換してあるので戻すこと

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
div.nav{text-align:center;width:100%;height:2em;line-height:2em;}
div.nav ol,div.nav ol li{display:block;list-style-type:none;margin:0;padding:0;}
div.nav ol{width:100%;}
div.nav ol li{display:inline-block;width:20%;position:relative;}
/* ここから */
div.nav ol li ol{position:absolute;left:0;top:100%;height:auto;background:url(images/background/triangle.gif) no-repeat;background-size:100% 100%;opacity:0.2}
div.nav ol li ol li{width:100%;margin-top:5px;}
div.nav ol li ol li a{display:block;width:100%;height:100%;display:none;}
div.nav ol li:hover ol li a{display:block;}
div.nav ol li:hover ol{display:block;opacity:1;z-index:10;
/* 画像を消す場合 */
/*background-image:none;*/
}
div.section{position:relative;z-index:5;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<div class="nav">
___<ol>
____<li><a href="A">AAA</a>
_____<ol>
______<li><a href="A/1">AAA-1</a></li>
_____</ol>
____</li>
____<li><a href="B">CATEGORY1</a>
_____<ol>
______<li><a href="B/1">BBB-1</a></li>
______<li><a href="B/2">BBB-2</a></li>
______<li><a href="B/3">BBB-3</a></li>
_____</ol>
____</li>
____<li><a href="C">CATEGORY2</a>
_____<ol>
______<li><a href="C/1">CCC-1</a>
______<li><a href="C/2">CCC-2</a>
_____</ol>
____</li>
____<li><a href="D">DDD</a>
_____<ol>
______<li><a href="D/1">DDD-1</a>
______<li><a href="D/2">DDD-2</a>
______<li><a href="D/1">DDD-1</a>
______<li><a href="D/2">DDD-2</a>
______<li><a href="D/1">DDD-1</a>
______<li><a href="D/2">DDD-2</a>
_____</ol>
____</li>
___</ol>
__</div>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・</p>
__<div class="footer">
___<h2>文書情報</h2>
__</div>
_</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

お返事遅くなり申し訳ございません。

サンプルありがとうございます!
わかりやすくて助かります!

こちら参考にさせていただきます。

質問させていただいた件はおかげさまで
ほぼ解決致しました。

サイト作成は調べつつ試しつつの作業ですね。

ご協力本当にありがとうございます!

お礼日時:2012/09/19 10:36

マウスが乗っかったら、クラスをどーんと変えてしまうのはどうでしょう。


マウスがいなくなってもクラスは変えられたままです。

<style type="text/css">
.xlist {/* 元のクラス */
  background-image: url('./bg.png');
}

.keepNoImage {/* 背景なしのクラス */
  background-image: none;
}
</style>

<script type="text/javascript">
function classChange(obj,newName) {// objのクラスをnewNameに変えちゃう
  obj.className = newName;
}
</script>

<hx>CATEGORY</hx>
<!--   最初は'背景付き'、 マウスが乗ると、(自分を, '背景なしのまま'クラスに)変身させる -->
<ul id="QQ" class="xlist" onMouseOver = "classChange(this,'keepNoImage');">
  <li><a href="Link01">Link01</a></li>
  <li><a href="Link02">Link02</a></li>
  <li><a href="Link03">Link03</a></li>
  <li><a href="Link04">Link04</a></li>
</ul>

<div onClick="classChange(document.getElementById('QQ'),'xlist');">
ここをクリックすると元通り?(リロードしても元通りですが)
</div>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほどなるほど!
がっつり変えてしまうのもありですね~。

サブカテゴリがドロップダウンのアクションなので
どんな感じの表現になるかちょっと試してみます。

ありがとうございます!

お礼日時:2012/09/13 23:02

 サブリストが表示されているときは、背景画像が表示されたままと拡大解釈すれば良いでしょうね。

サブリストも当然ながら親コンテナブロックの子供ですから、子供の上にマウスがあるとき=親の上なのですから、子供の上にマウスが乗っても表示され続けるはずですね。

すなわち、HTMLは下位リストを持つナビゲーションリストですから、下のような形であるはずですね。
<div class="nav">
  <ol>
    <li><a href="A">AAA</a></li>
    <li><a href="B">CATEGORY1</a>・この項目にポインターが乗ると↑
      <ol> ・・・・・・・・・・・・・・この背景は常に見えていて       ここから
        <li><a href="B/1">BBB-1</a></li>・ここが表示される。   |
        <li><a href="B/2">BBB-2</a></li>                |
        <li><a href="B/3">BBB-3</a></li>                |
      </ol>                                      |
    </li>                                         ↓
    <li><a href="C">CATEGORY2</a>
      <ol>
        <li><a href="C/1">CCC-1</a>
        <li><a href="C/2">CCC-2</a>
      </ol>
    </li>
    <li><a href="D">DDD</a>
      <ol>
        <li><a href="D/1">DDD-1</a>
        <li><a href="D/2">DDD-2</a>
        <li><a href="D/1">DDD-1</a>
        <li><a href="D/2">DDD-2</a>
        <li><a href="D/1">DDD-1</a>
        <li><a href="D/2">DDD-2</a>
      </ol>
    </li>
  </ol>
</div>

というスタイルシートにすれば良いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

マウスアウト後ものままにしたいと依頼主の要望だったもので...。

詳しく回答頂き感謝です!

こちらで一度試してみます。

お礼日時:2012/09/13 22:53

すみません。

書き間違えです。
 マウスオーバーされたら表示され、そこを外れ(たとえばカテゴリー2に移動し)てもずっと表示されていたらまずいのじゃないですか?。
    • good
    • 0

消えたままじゃまずいのでは、ないですか?


 カテゴリー1にマウスオーバーしてサブリストが表示されていて、その後カテゴリー2に移動するとカテゴリー1のマウスオーバーの設定は解除されないとまずいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!