📜  引导轮播动态高度 jquery - Javascript (1)

📅  最后修改于: 2023-12-03 15:09:49.958000             🧑  作者: Mango

引导轮播动态高度 jQuery

在一个网站中,经常会有一些轮播图的需求。对于一个普通的轮播图,其高度通常是固定的,但是有些场景下,轮播图的高度并不固定,可能是根据图片高度动态计算得出,这就需要用到 jQuery 来实现动态高度的引导轮播图。

实现步骤
  1. 引入 jQuery 库

通常来说,在实现引导轮播图的时候,我们都会选择 jQuery 库来简化操作,所以我们需要在 HTML 文件中引入 jQuery 库,可以使用以下方式:

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  1. 编写 HTML 结构

编写基础的 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>
  1. 编写 CSS 样式

为了让图片、标题和描述能够整齐地排列,我们需要设置它们的样式,包括边距、宽度、高度等等。其中,最重要的是设置容器的高度,这里我们使用百分比来设置高度,具体数值根据实际情况而定。

.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;
}
  1. 编写 jQuery 代码

在 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);
});
总结

通过以上的步骤,我们就成功地实现了一个动态高度的引导轮播图。通过监听容器的高度变化,让每个轮播项的高度随之动态计算,进而实现整个轮播图高度的自适应。