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

オンマウス時に別画像、png画像を重ねたいと思っています。

置き換えではありません。

a.jpgを用意して
マウスオーバーで
b.pngを重ねたいです。
常にa.jpgは表示し続けるという意味ですがどうやればいいのでしょうか。

※a.jpgにb.pngが重なっているc.jpgを用意して、置き換えるという答えはなしでお願いします。

説明不足の場合補足いたします。

どうぞよろしくお願いします。

A 回答 (4件)

No.1です。


 すみません。初歩的なミスが二つほど
・contentプロパティは内容の追加ですが、:before,:after擬似要素と組み合わせなければなりませんでした。
・img要素には内容がないため内容の追加は出来ないのでした。
 ⇒12. 生成内容、自動番号振り、リスト( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
※:before擬似要素だと内容の前に追加されるため後続の本来の内容の下になってしまうので(z-indexプロパティで前面に移動させる必要がある)、:after擬似要素の方が良いです。
<!-- タブの代わりに全角スペースでインデントさせてます -->
<p class="figure" id="jpg01">
  <img src="./images/03.jpg" width="350" height="350" alt="">
</p>
<p class="figure" id="jpg03">
  <img src="./images/03.jpg" width="350" height="350" alt="">
</p>
<p class="figure" id="jpg05">
  <img src="./images/03.jpg" width="350" height="350" alt="">
</p>

p.figure{position:relative;}
p.figure:after{position:absolute;top:0;left:0;}
p#jpg01:hover:after{content:url(./images/02.jpg);}
p#jpg03:hover:after{content:url(./images/04.jpg);}
p#jpg05:hover:after{content:url(./images/06.jpg);}

親要素にposition:relativeが指定されている理由などは、ご自身で確認して自家薬籠中のものとしてください。
    • good
    • 1
この回答へのお礼

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

さすがORUKAさんとしか言いようがないです。
完璧な回答ありがとうございました。

今回分からない事が多かったのでいただいた情報を元にもっと勉強をしようと思います。

いつもありがとうございます。

お礼日時:2013/08/12 19:54

すみません。

理解が不足しておりました。以下でよろしいでしょうか。

b画像は最初は非表示 →マイナスの数値で画面からはみ出させる
b画像が重なったら処理は終了 → Henkou2は不要

<html>
<head>
<title>オンマウスで画像表示を入れ替え</title>
<script type='text/javascript'>

function init(){
document.getElementById('id1').style.position = 'absolute';
document.getElementById('id1').style.top = '50px'; //1枚目の画像の最初の位置
document.getElementById('id1').style.left = '50px'; //1枚目の画像の最初の位置
document.getElementById('id2').style.position = 'absolute';
document.getElementById('id2').style.top = '-2000px'; //2枚目の画像の最初の位置
document.getElementById('id2').style.left = '-2000px'; //2目目の画像の最初の位置
}

function henkou1(){
document.getElementById('id1').style.zIndex = 1; //1枚目の画像表示を下
document.getElementById('id2').style.zIndex = 2; //2枚目の画像表示を上
document.getElementById('id2').style.top = '100px'; //2枚目の画像位置
document.getElementById('id2').style.left = '100px'; //2目目の画像位置
}

</script>
</head>
<body onload='init()'>
<div id='id1'><img src='aaaa.jpg' onmouseover='henkou1()'></div>
<div id='id2'><img src='bbbb.jpg'></div>
</body>
</html>

まだ間違っていたら言ってください。
    • good
    • 0
この回答へのお礼

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

僕の説明不足でしたが、マウスアウトすると2毎目の画像を外す必要がありました。

しかし、マウスオーバー後、画像をずっと重ねるときはぜひ使用させていただきます。

回答していただきありがとうございます。

お礼日時:2013/08/12 19:59

2つの画像の処理だとすれば、以下でどうでしょうか。



<html>
<head>
<title>オンマウスで画像表示を入れ替え</title>
<script type='text/javascript'>

function init(){

document.getElementById('id1').style.position = 'absolute';
document.getElementById('id1').style.top = '0px'; //上からの位置
document.getElementById('id1').style.left = '0px'; //左からの位置
document.getElementById('id1').style.zIndex = 1; //まずは下なので 1

document.getElementById('id2').style.position = 'absolute';
document.getElementById('id2').style.top = '50px'; //上からの位置
document.getElementById('id2').style.left = '50px'; //左からの位置
document.getElementById('id2').style.zIndex = 2; //まずは上なので 2

}

function henkou1(){ //1番の画像へマウスオーバー

document.getElementById('id1').style.zIndex = 2;
document.getElementById('id2').style.zIndex = 1;

}

function henkou2(){ //2番の画像へマウスオーバー

document.getElementById('id1').style.zIndex = 1;
document.getElementById('id2').style.zIndex = 2;

}

</script>
</head>
<body onload='init()'>
<div id='id1'><img src='aaaa.jpg' onmouseover='henkou1()'></div>
<div id='id2'><img src='bbbb.jpg' onmouseover='henkou2()'></div>
</body>
</html>
    • good
    • 0
この回答へのお礼

回答していただきありがとうございます。

上記のやり方を試してみたのですが、ダメでした。

初めから2枚の画像が表示されてしまいます。
2枚目の画像がtop 50px left 50pxとjavascriptで指定いますので
上、左、50pxずれた状態で表示されています。

pxを0にして
overflow:hidden;とかやってみてもダメでした。



上記のやり方はid1の画像にid2の画像が重なるという認識でいいんですよね。

思ったのですが、
onmouseover='henkou1()'
この部分のhenkou1()にマウスオーバー後のurlを入れるのでしょうか。

無知で申し訳ありませんがよろしくお願い致します。

お礼日時:2013/08/12 16:11

ふたつの画像のサイズは???


上に来る画像は透過???

:hover擬似クラスを使います。

HTMLの文書構造が分からないと具体的には無理です。
例えば、写真があって、その写真に:hoverすると、新しい写真をそれに重ねる
<p class="figure"><img src="./images/photo.jpg" width="" height="" alt=""></p>
p.figure{position:relative;}
p.figure img[src="./images/photo.jpg"]:hover{content:url(./images/photo.2.jpg);position:absolute;top:0;left:0;}
    • good
    • 0
この回答へのお礼

回答していただきありがとうございます。

ふたつの画像のサイズは
350px × 350pxです。
上にくる画像のサイズも同じサイズで透過画像のpngになります。


教えて頂いた通り試してみたのですが、マウスオーバーしても変わりませんでした。

動作結果
マウスオーバーすると画像が5pxほど下に動きました。


同じ画像サイズの場合は上記のタグではダメなのでしょうか。

お礼日時:2013/08/12 16:03

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