Bootstrap 5 Carousel无法正常工作:指示器不显示、控制按钮失效求助
Bootstrap 5 Carousel组件失效问题解决
问题描述
用CDN搭建Bootstrap 5页面,仅修改了官网Carousel示例的图片路径,却出现两个问题:
- 轮播指示器不显示
- 点击前后切换按钮毫无反应
以下是相关代码:
<!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if gt IE 8]> <html class="no-js"> <!--<![endif]--> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Alpha Ace Trading</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous"> <link rel="stylesheet" href="style.css"> </head> <body> <nav class="navbar navbar-expand-md bg-white fixed-top "> <div class="container"> <a href="#" class="navbar-brand">Alpha Ace</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navmenu"><span class="navbar-toggler-icon"></span></button> <div class="collapse navbar-collapse" id="navmenu"> <ul class="navbar-nav ms-auto"> <li class="nav-item"> <a href="#" class="nav-link">home</a> </li> <li class="nav-item"> <a href="#" class="nav-link">home</a> </li> <li class="nav-item"> <a href="#" class="nav-link">home</a> </li> <li class="nav-item"> <a href="#" class="nav-link">home</a> </li> </ul> </div> </div> </nav> <section class="bg-grey text-dark text-center p-3 p-md-5"> <div class="container text-center text-md-start"> <div class="row align-items-center justify-content-around my-5 g-4 w-100 mx-auto"> <div class="col-md-6 order-2 order-md-1"> <h1>hello world</h1> <p class="lead">hi himnish please put some content here thank you</p> <p class="lead">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Recusandae ab mollitia, nobis impedit ipsa porro.</p> </div> <div class="col-md-5 order-1 text-center order-md-2"> <img class="rounded-max shadow img-fluid w-100" src="assets/dummy-picture.jpeg" alt=""> </div> </div> <div class="row align-items-center justify-content-around my-5 g-4 w-100 mx-auto"> <div class="col-md-6 order-2 p-4"> <h1>hello world</h1> <p class="lead">hi himnish please put some content here thank you</p> <p class="lead">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Recusandae ab mollitia, nobis impedit ipsa porro.</p> </div> <div class="col-md-5 order-1 text-center"> <img class="rounded-max shadow img-fluid w-100" src="assets/dummy-picture.jpeg" alt=""> </div> </div> </div> </section> <!-- text on image --> <section class="bg-dark text-light"> <div id="myCarousel" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#myCarousel" data-slide-to="0" class="active"></li> <li data-target="#myCarousel" data-slide-to="1"></li> <li data-target="#myCarousel" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-50 mx-auto" src="assets/bse.svg" alt="First slide"> </div> <div class="carousel-item"> <img class="d-block w-50 mx-auto" src="assets/bitcoin.png" alt="Second slide"> </div> <div class="carousel-item"> <img class="d-block w-50 mx-auto" src="assets/nse.png" alt="Third slide"> </div> </div> <a class="carousel-control-prev" href="#myCarousel" 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="#myCarousel" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </section> <!--[if lt IE 7]> <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="#">upgrade your browser</a> to improve your experience.</p> <![endif]--> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script> <script src="" async defer></script> </body> </html>
效果截图:
修复方案
1. 替换Bootstrap 5专属的data属性
Bootstrap 5所有JavaScript插件的data属性都添加了bs-前缀,你的代码用了旧版(3/4)的属性,导致功能失效:
- 将
data-ride="carousel"改为data-bs-ride="carousel" - 将指示器的
data-target="#myCarousel"改为data-bs-target="#myCarousel" - 将控制按钮的
data-slide="prev"/data-slide="next"改为data-bs-slide="prev"/data-bs-slide="next"
2. 统一Bootstrap版本
你引入的CSS是5.2.2版本,但JS是5.0.2,版本不一致可能引发兼容问题,建议统一为同一版本,比如替换JS为5.2.2:
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.min.js" integrity="sha384-IDwe1+LCz02ROU9k972gdyvl+AESN10+x7tBKgc9I5HFtuNz0wWnPclzo6p9vxnk" crossorigin="anonymous"></script>
修复后的完整Carousel代码
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel"> <ol class="carousel-indicators"> <li data-bs-target="#myCarousel" data-bs-slide-to="0" class="active"></li> <li data-bs-target="#myCarousel" data-bs-slide-to="1"></li> <li data-bs-target="#myCarousel" data-bs-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-50 mx-auto" src="assets/bse.svg" alt="First slide"> </div> <div class="carousel-item"> <img class="d-block w-50 mx-auto" src="assets/bitcoin.png" alt="Second slide"> </div> <div class="carousel-item"> <img class="d-block w-50 mx-auto" src="assets/nse.png" alt="Third slide"> </div> </div> <a class="carousel-control-prev" href="#myCarousel" role="button" data-bs-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="#myCarousel" role="button" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div>
内容的提问来源于stack exchange,提问作者Manav Mehta
相关产品推荐
相关产品推荐

