如何在运行时更改 BS 轮播间隔?
How To Change BS Carousel Interval At Runtime?
我知道您可以设置 bootstrap 轮播间隔:
$('.carousel').carousel({interval: 1000 });
我的问题是如何在(比如)10 秒后将间隔更改为 2 秒?
setTimeout(function(){ }, 10000);
有什么想法吗?
您可以先将interval
设置为1000
,然后通过这种方式处理后再次设置为2000
。这是技巧,不是官方的做法。
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://picsum.photos/1920/1080?random=1" class="d-block w-100" alt="img">
</div>
<div class="carousel-item">
<img src="https://picsum.photos/1920/1080?random=2" class="d-block w-100" alt="img">
</div>
<div class="carousel-item">
<img src="https://picsum.photos/1920/1080?random=3" class="d-block w-100" alt="img">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script>
$('.carousel').carousel({
interval: 1000
});
setInterval(() => {
$('.carousel').carousel('dispose')
$('.carousel').carousel({
interval: 2000
});
}, 10000)
</script>
我知道您可以设置 bootstrap 轮播间隔:
$('.carousel').carousel({interval: 1000 });
我的问题是如何在(比如)10 秒后将间隔更改为 2 秒?
setTimeout(function(){ }, 10000);
有什么想法吗?
您可以先将interval
设置为1000
,然后通过这种方式处理后再次设置为2000
。这是技巧,不是官方的做法。
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://picsum.photos/1920/1080?random=1" class="d-block w-100" alt="img">
</div>
<div class="carousel-item">
<img src="https://picsum.photos/1920/1080?random=2" class="d-block w-100" alt="img">
</div>
<div class="carousel-item">
<img src="https://picsum.photos/1920/1080?random=3" class="d-block w-100" alt="img">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script>
$('.carousel').carousel({
interval: 1000
});
setInterval(() => {
$('.carousel').carousel('dispose')
$('.carousel').carousel({
interval: 2000
});
}, 10000)
</script>