You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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>

效果截图:
Carousel效果截图

修复方案

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:10:21