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

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

新規登録して質問してみよう
ただいま回答率
85.49%
jQuery

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

Q&A

解決済

2回答

2481閲覧

Jqueryのresizeを使って windowの大きさによって表示させる画像を変更させる

退会済みユーザー

退会済みユーザー

総合スコア0

jQuery

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

0グッド

0クリップ

投稿2015/07/23 07:09

function show_hoverImage() {

var w = $(window).width(); if(w > 1100) { $("body").on("mouseenter mouseleave", ".itemWraper", function(ev) { if(ev.type === "mouseenter") { $(".preH", this).css({"visibility": "hidden"}); $(".itemcHover", this).css({"visibility": "visible"}); }else{ $(".preH", this).css({"visibility": "visible"}); $(".itemcHover", this).css({"visibility": "hidden"}); } }); $("body").on("mouseenter mouseleave", ".socialMarkF", function(ev) { if(ev.type === "mouseenter") { $(".snsN", this).css({"display": "none"}); $(".snsH", this).css({"display": "block"}); }else{ $(".snsN", this).css({"display": "block"}); $(".snsH", this).css({"display": "none"}); } }); $("body").on("mouseenter mouseleave", ".socialMarkT", function(ev) { if(ev.type === "mouseenter") { $(".snsN", this).css({"display": "none"}); $(".snsH", this).css({"display": "block"}); }else{ $(".snsN", this).css({"display": "block"}); $(".snsH", this).css({"display": "none"}); } }); }else if(w < 1100){ $(".itemcHover", this).css({"display": "none"}); } } $(window).resize(function() { show_hoverImage(); }).trigger("resize");

上記のコードでは、ロード時はwidth 1100以下だとmouseenterした時には画像は表示されません。
しかし、一度windowサイズを1100以上にすると、windowサイズを1100以下にしても,
mouseenterした時に画像が表示されてしまいます。windowをリサイズするごとに画像の表示を変更させるにはどうすればいいですか?

教えて頂けたら幸いです。よろしくお願いします。

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

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

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

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

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

guest

回答2

0

シンプルにやるなら、たとえば画像 (サムネイル+マウスで拡大画像みたいな感じでしょうか?) の組を要素で囲って、 CSS の :hover 擬似クラスの内部で元画像の非表示と拡大画像の表示のスタイルを書くとかいかがでしょう。まずは簡単な、ウィンドウサイズ無視のサンプルですが。

css

1.image-wrapper .thumbnail { 2 display: block; /*普段は表示*/ 3} 4.image-wrapper:hover .thumbnail { 5 display: none; /*マウスオンで非表示*/ 6} 7.image-wrapper .popup { 8 display: none; /*普段は非表示*/ 9} 10.image-wrapper:hover .popup { 11 display: block; /*マウスオンで非表示*/ 12}

html

1<div class="image-wrapper"> 2 <img class="thumbnail" src="..."> 3 <img class="popup" src="..."> 4</div>

ここまでなら JavaScript いりませんね。
さて、ウィンドウサイズで違う画像にする部分はさすがに CSS だけでは難しそうなので、 JS の出番です。
たとえばresizeイベントで、bodyタグ (か何か) に対してウィンドウサイズに応じたクラスsmall``medium``largeをつけます。この JS は超簡単だと思うので割愛します。.removeClass("small medium large")で全部消せます。.addClass("どれか")で追加してください。
上記コードはこのように変化します。

css

1.image-wrapper>.thumbnail { 2 display: block; /*普段は表示*/ 3} 4body.medium .image-wrapper:hover>.thumbnail /*small 以外の場合だけ変化*/ 5body.large .image-wrapper:hover>.thumbnail { 6 display: none; /*マウスオンで非表示*/ 7} 8.image-wrapper>.medium-popup, /*全部非表示にします。*/ 9.image-wrapper>.large-popup, { /*small は要素自体なし*/ 10 display: none; /*普段は非表示*/ 11} 12 13body.medium .image-wrapper:hover>.medium-popup { 14 display: block; /*マウスオンで非表示*/ 15} 16body.large .image-wrapper:hover>.large-popup { 17 display: block; /*マウスオンで非表示*/ 18}

html

1<div class="image-wrapper"> 2 <img class="thumbnail" src="..."> 3 <img class="medium-popup" src="..."> 4 <img class="large-popup" src="..."> 5</div>

まったくテストしてないのでコピペで動くかわからないですが、やり方のヒントになれば。

投稿2015/07/23 18:46

tozjp

総合スコア790

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

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

退会済みユーザー

退会済みユーザー

2015/07/27 00:32

ご回答ありがとうございます。 このやり方は全く思い浮かばなかったです。
guest

0

ベストアンサー

.off()を利用すればいいのではないでしょうか。

投稿2015/07/23 07:24

orange0190

総合スコア1698

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問