レスポンシブ コンテナーに配置された単純な jquery イメージ スライダーがあります。スライダーはレスポンシブに動作していますが、高さはピクセル単位で設定されており、ビューポートの最大幅では見栄えがしますが、想像できるように、ビューポートの幅が小さいとスライダーとコンテンツの間の距離が大きくなりすぎます。
CSS または jQuery を使用して、画像スライダーを含む div の高さを動的に設定し、すべてのビューポート幅で見栄えがするようにする簡単な方法があるかどうか疑問に思っています。
jQuery:
function slideSwitch() {
var $active = $('#slideshow DIV.active');
if ( $active.length == 0 ) $active = $('#slideshow DIV:last');
var $next = $active.next().length ? $active.next()
: $('#slideshow DIV:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
$(function() {
setInterval( "slideSwitch()", 5000 );
});
CSS:
.responsive-container {
width: 80%;
margin: 0 auto;
}
.responsive {
display: block;
max-width: 100%;
margin: 0 auto;
}
#slideshow {
position:relative;
height: 60%;
}
#slideshow div {
position:absolute;
top:0;
left:0;
z-index:8;
opacity:0.0;
background-color: #FFF;
}
#slideshow div.active {
z-index:10;
opacity:1.0;
}
#slideshow div.last-active {
z-index:9;
}
#slideshow div img {
display: block;
border: 0;
margin-bottom: 10px;
}
HTML:
<div id="slideshow" class="responsive-container">
<div class="active">
<img class="responsive" src="img/slider/image1.jpg" alt="Slideshow Image 1" />
</div>
<div>
<img class="responsive" src="img/slider/image2.jpg" alt="Slideshow Image 2" />
</div>
<div>
<img class="responsive" src="img/slider/image3.jpg" alt="Slideshow Image 3" />
</div>
</div>
高さを動的に追加する方法はありますか:
<div id="slideshow" class="responsive-container">
問題があるかどうかはわかりませんが、最大画像サイズは幅 531px x 高さ 400px です。