📅  最后修改于: 2023-12-03 15:09:49.958000             🧑  作者: Mango
在一个网站中,经常会有一些轮播图的需求。对于一个普通的轮播图,其高度通常是固定的,但是有些场景下,轮播图的高度并不固定,可能是根据图片高度动态计算得出,这就需要用到 jQuery 来实现动态高度的引导轮播图。
通常来说,在实现引导轮播图的时候,我们都会选择 jQuery 库来简化操作,所以我们需要在 HTML 文件中引入 jQuery 库,可以使用以下方式:
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
编写基础的 HTML 结构,其中包含需要轮播的图片和对应的标题和描述。由于高度需要动态计算,因此为了方便,我们可以将图片、标题和描述都放在同一个容器中。
<div class="slider">
<div class="slider-item">
<img src="image1.png" alt="image1">
<h3>Title 1</h3>
<p>Description 1</p>
</div>
<div class="slider-item">
<img src="image2.png" alt="image2">
<h3>Title 2</h3>
<p>Description 2</p>
</div>
<div class="slider-item">
<img src="image3.png" alt="image3">
<h3>Title 3</h3>
<p>Description 3</p>
</div>
<div class="slider-item">
<img src="image4.png" alt="image4">
<h3>Title 4</h3>
<p>Description 4</p>
</div>
</div>
为了让图片、标题和描述能够整齐地排列,我们需要设置它们的样式,包括边距、宽度、高度等等。其中,最重要的是设置容器的高度,这里我们使用百分比来设置高度,具体数值根据实际情况而定。
.slider {
width: 100%;
height: 70%;
position: relative;
overflow: hidden;
}
.slider-item {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
display: none;
text-align: center;
padding: 20px;
}
.slider-item img {
max-width: 100%;
max-height: 100%;
margin: 0 auto;
}
.slider-item h3, .slider-item p {
margin-top: 10px;
margin-bottom: 10px;
text-align: center;
}
.slider-item.active {
display: block;
}
在 jQuery 代码中,我们需要获取容器的高度,并将每个轮播项的高度设为容器高度。为了实现动态计算高度,我们使用了 resize
事件监听容器高度的变化,并在每次容器高度发生变化时重新计算每个轮播项的高度。
$(document).ready(function() {
var slider = $('.slider');
var sliderItem = $('.slider-item');
var sliderItemHeight;
function setSliderHeight() {
var newHeight = slider.width() * 9 / 16;
slider.height(newHeight);
sliderItemHeight = newHeight;
sliderItem.css('height', sliderItemHeight + 'px');
}
setSliderHeight();
$(window).resize(setSliderHeight);
var currentSlide = 0;
var slideCount = sliderItem.length;
function showSlide() {
sliderItem.removeClass('active');
$(sliderItem[currentSlide]).addClass('active');
}
function nextSlide() {
currentSlide++;
if (currentSlide >= slideCount) {
currentSlide = 0;
}
showSlide();
}
setInterval(nextSlide, 5000);
});
通过以上的步骤,我们就成功地实现了一个动态高度的引导轮播图。通过监听容器的高度变化,让每个轮播项的高度随之动态计算,进而实现整个轮播图高度的自适应。