【问题标题】:How to stop Bootstrap 5 carousel autoslide only for large screens?如何仅针对大屏幕停止 Bootstrap 5 轮播自动滑动?
【发布时间】:2022-07-17 07:15:35
【问题描述】:

我有来自 Bootstrap 5 的轮播,它只需要在大屏幕上停止自动滑动,但对于移动版本,我需要自动滑动。 如果只能使用 html 和 css/scss,我该怎么做?

我知道data-bs-interval="false",但这也停止了移动屏幕的自动滑动。

<div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="..." class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
    </div>
  </div>
  <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Previous</span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Next</span>
  </button>
</div>

【问题讨论】:

    标签: html css sass carousel bootstrap-5


    【解决方案1】:

    在正文末尾添加此脚本

    <script>
        if(window.innerWidth > 1000){
          document.getElementById('carouselExampleControls').dataset.bsInterval = false
        }
    </script>
    

    这将在加载之前检查窗口的大小,如果大小大于 1000,则将 data-bs-interval 设置为 false

    【讨论】:

    • 但@Kate 只记得更改屏幕尺寸(在旋转平板电脑或桌面窗口调整大小时)
    • 这对我不起作用
    【解决方案2】:

    您可以使用 javascript 调用 interval: false。并且,还定义窗口宽度。请尝试以下javascript。

    var myCarousel = document.querySelector('#carouselExampleControls')
    if ($(window).width() > 991) {
    var carousel = new bootstrap.Carousel(myCarousel, {
      interval: false
    })
    }
    

    【讨论】:

    • 我只会改变这种类似jQuery的window语法并使用window对象本身
    • 我无法使用 jquery
    • 默认情况下,此选项不可用。因此,您必须使用 javascript 来解决。
    【解决方案3】:

    这适用于 Mac Firefox,但不适用于 Mac Chrome
    为所有轮播项目设置“活动”

        $(window).resize(function() {
            if ($(window).width() < 768) {
                $('#FirstBox').removeClass('active');
                $('#SecondBox').addClass('active');
                $('#ThirdBox').removeClass('active');
            }
            
            if ($(window).width() >= 768) {
                $('#FirstBox').addClass('active');
                $('#SecondBox').addClass('active');
                $('#ThirdBox').addClass('active');
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多