スマホ表示からPC表示になった際に、画像がスマホ版の画像(top01_sp.jpg)のまま、引き伸ばされた状態になって困っています。
スマホ閲覧時に「PCサイトを見る」ボタンでviewportを書き換えてスマホ画面でPCサイトのレイアウトを表示するようにしています。
また、画像ファイル名の後ろの「_sp.jpg」から「_pc.jpg」に変えることでスマホ閲覧時用の画像とPC版の画像とを切り替えています。
左がパソコン版、右がスマホ版の画像
![左がパソコン版、右がスマホ版]WIDTH:600
パソコン版の正しい見え方
![パソコン版の正しい見え方]WIDTH:600
スマホ版からパソコン版にしたあと
![スマホ版からパソコン版にしたあと]WIDTH:600
デフォルトのviewportなど
lang
1<meta name="viewport" content="width=device-width, initial-scale=1.0"> 2<script src="js/common/vendor/jquery-1.11.2.min.js"></script> 3<script src="js/common/jquery.cookie.js"></script>
ウィンドウサイズの変化によって変わる画像
lang
1<a href="/"><img src="img/top01_pc.jpg" width="300" height="100" class="imgChange" alt="" /></a>
トリガーのボタン
lang
1<div class="switchViewportBtn pcNone"><a href="javascript:void(0)" id="btnPC">PCサイトを見る</a></div>
lang
1var wid = $(window).width(); 2var sp_windowWidth = 767; 3 4$("head").append("<meta name='viewport' content=" 5 +($.cookie("switchScreen") == 1 ? 6 "'width=1024'" : 7 "'width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=1.0'") +">"); 8 $(function() { 9 $("#btnPC").click(function() { 10 $.cookie("switchScreen", $(this).attr("id") == "btnPC" ? 1 : 0); 11 location.reload(); 12 return false; 13 }); 14 });
lang
1if( wid < sp_windowWidth ){ 2 $('.imgChange').each(function() { 3 $(this).attr("src",$(this).attr("src").replace('_pc', '_sp')); 4 }); 5};
猫に罪はありません。
よろしくお願いいたします。
==================================================================
追記しました。
ご回答有難うございます。
私の説明が下手で伝わりづらかったようで申し訳ございません!
まず、スマホでの正しい表示は、こうなります。
![イメージ説明]WIDTH:300
その時のHTMLは、
lang
1<a href="/"><img src="img/top01_sp.jpg" width="300" height="100" class="imgChange" alt="" /></a>
lang
1@media only screen and (max-width: 767px) { 2.imgChange { 3 width: 150px; 4 height: auto; 5} 6}
lang
1var wid = $(window).width(); 2var sp_windowWidth = 767; 3if( wid < sp_windowWidth ){ 4 $('.imgChange').each(function() { 5 $(this).attr("src",$(this).attr("src").replace('_pc', '_sp')); 6 }); 7};
にして、対応しています。
この段階では問題ないのですが、
lang
1<div class="switchViewportBtn pcNone"><a href="javascript:void(0)" id="btnPC">PCサイトを見る</a></div>
lang
1$("head").append("<meta name='viewport' content=" 2 +($.cookie("switchScreen") == 1 ? 3 "'width=1024'" : 4 "'width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=1.0'") +">"); 5 $(function() { 6 $("#btnPC").click(function() { 7 $.cookie("switchScreen", $(this).attr("id") == "btnPC" ? 1 : 0); 8 location.reload(); 9 return false; 10 }); 11 });
を#btnPCのボタンをクリックして、PC表示にします。
そして、さっきの画像をみると、
lang
1<a href="/"><img src="img/top01_sp.jpg" width="300" height="100" class="imgChange" alt="" /></a>
lang
1@media only screen and (min-width: 767px) { 2.imgChange { 3 width: 300px; 4 height: 100px; 5} 6}
※「top01_sp.jpg」は、横150px縦100px
※便宜上、上記CSSを書きました。本当は書いていません。
そのため、画像がビヨーンと引き伸ばされた状態になってしまいます。
![イメージ説明]WIDTH:600
ここで
lang
1<a href="/"><img src="img/top01_pc.jpg" width="300" height="100" class="imgChange" alt="" /></a>
にしたいのです!!

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/26 11:21