前提・実現したいこと
テンプレート
↑のテンプレートを利用して、高さを固定、幅を自動にした写真を画面の中央に配置し、スマホで見た時にも画像が切れずに表示されるようにしたい。
発生している問題・エラーメッセージ
JavaScript
1<style type="text/css"> 2#photo { 3 width: 500px; 4 height: 300px; 5 margin: 0 auto; 6 text-align: left; 7 overflow: hidden; 8 position: relative; 9} 10 11#photo img { 12 top: 0; 13 left: 0; 14 position: absolute; 15} 16</style> 17 18 19<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 20<script type="text/javascript"> 21$(function(){ 22 var setImg = '#photo'; 23 var fadeSpeed = 1600; 24 var switchDelay = 5000; 25 26 $(setImg).children('img').css({opacity:'0'}); 27 $(setImg + ' img:first').stop().animate({opacity:'1',zIndex:'20'},fadeSpeed); 28 29 setInterval(function(){ 30 $(setImg + ' :first-child').animate({opacity:'0'},fadeSpeed).next('img').animate({opacity:'1'},fadeSpeed).end().appendTo(setImg); 31 },switchDelay); 32}); 33</script>
HTML
1<div id="photo"> 2<img src="gazou1.jpg" width="500" height="300" alt=""> 3<img src="gazou2.jpg" width="500" height="300" alt=""> 4<img src="gazou3.jpg" width="500" height="300" alt=""> 5<img src="gazou4.jpg" width="500" height="300" alt=""> 6</div>
元のものは↑で、これを横幅を固定、縦幅はautoというものは画像が中央に配置され、問題なく表示されましたが、縦幅を固定、横幅はautoにするとスマホで見た時に右端が切れて表示されています。
該当のソースコード
JS
1<style type="text/css"> 2#photo { 3 max-width: auto; 4 height: 400px; 5 6 margin: 0 auto; 7 text-align: center; 8 overflow: hidden; 9 position: relative; 10} 11#photo img { 12 width: auto; 13 height: 100%; 14} 15#photo img:not(:first-child) { 16 top: 0; 17 left: 0; 18 position: relative; 19} 20</style> 21 22 23<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 24<script type="text/javascript"> 25$(function(){ 26 var setImg = '#photo'; 27 var fadeSpeed = 1600; 28 var switchDelay = 6000; 29 30 $(setImg).children('img').css({opacity:'0'}); 31 $(setImg + ' img:first').stop().animate({opacity:'1',zIndex:'20'},fadeSpeed); 32 33 setInterval(function(){ 34 $(setImg + ' :first-child').animate({opacity:'0'},fadeSpeed).next('img').animate({opacity:'1'},fadeSpeed).end().appendTo(setImg); 35 },switchDelay); 36}); 37</script>
html
1<div id="photo"> 2<img src="gazou1.jpg" width="auto" height="400"> 3<img src="gazou2.jpg" width="auto" height="400"> 4<img src="gazou3.jpg" width="auto" height="400"> 5<img src="gazou4.jpg" width="auto" height="400"> 6</div>
↑に載せている画像の本来の大きさは
1枚目 3264×2448
2枚目 1000×794
3枚目 857×584
4枚目 631×484
になります。
当初、横を500pxで縦をautoの設定にしていた時はスマホの画面で見ても、写真の右端が切れることはなかったのですが、横をautoにして縦を400pxに切り替えたところ、スマートフォンで見た時に写真の右端が切れて表示されるようになってしまいました。
試したこと
JS
1#photo img { 2 width: auto; 3 height: 100%; 4}
の高さを400pxに指定してみたりはしましたが、右端が切れる現象は変わりませんでした。
12月31日9時現在のタグに修正しました。
2つのページで使おうと思っていまして、全く同じタグなのですが、1つのページでは写真が中央に配置され、スマホの画面で見ても右端は切れていないのですが、もう1つのページでは写真の右端が切れているので、右端が切れている方のタグを掲載しました。
回答1件
あなたの回答
tips
プレビュー