添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

用于循环播放元素(图像或文本幻灯片)的幻灯片组件,如轮播。

这个怎么运作

轮播是一个幻灯片,用于循环浏览一系列内容,使用 CSS 3D 转换和一些 JavaScript 构建。它适用于一系列图像、文本或自定义标记。它还包括对上一个/下一个控件和指示器的支持。

在支持 Page Visibility API 的浏览器中,当网页对用户不可见时(例如浏览器选项卡处于非活动状态、浏览器窗口最小化等),轮播将避免滑动。

该组件的动画效果依赖于 prefers-reduced-motion 媒体查询。请参阅 我们可访问性文档的减少运动部分

请注意,不支持嵌套轮播,并且轮播通常不符合可访问性标准。

最后,如果你从源代码构建我们的 JavaScript,它 需要 util.js .

轮播不会自动标准化幻灯片尺寸。因此,您可能需要使用其他实用程序或自定义样式来适当调整内容的大小。虽然轮播支持上一个/下一个控件和指示器,但它们并不是明确要求的。根据需要添加和自定义。

该类 .active 需要添加到其中一张幻灯片, 否则轮播将不可见。还要确保在 .carousel 可选控件上设置唯一的 id,尤其是当您在单个页面上使用多个轮播时。控件和指示器元素必须具有与元素的 id 匹配的 data-target 属性(或 href 用于链接) .carousel

这是一个只有幻灯片的旋转木马。请注意轮播图像上的 .d-block .w-100 以防止浏览器默认图像对齐。

<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
        <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">

添加上一个和下一个控件:

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

您还可以将指示器与控件一起添加到轮播中。

<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>
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
  <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 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>

使用.carousel-caption任何.carousel-item. 它们可以很容易地隐藏在较小的视口中,如下所示,使用可选的显示实用程序。我们最初使用隐藏它们,.d-none然后使用.d-md-block.

<div class="bd-example">
  <div id="carouselExampleCaptions" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
      <li data-target="#carouselExampleCaptions" data-slide-to="0" class="active"></li>
      <li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
      <li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
    <div class="carousel-inner">
      <div class="carousel-item active">
        <img src="..." class="d-block w-100" alt="...">
        <div class="carousel-caption d-none d-md-block">
          <h5>First slide label</h5>
          <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
      <div class="carousel-item">
        <img src="..." class="d-block w-100" alt="...">
        <div class="carousel-caption d-none d-md-block">
          <h5>Second slide label</h5>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
      <div class="carousel-item">
        <img src="..." class="d-block w-100" alt="...">
        <div class="carousel-caption d-none d-md-block">
          <h5>Third slide label</h5>
          <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
    <a class="carousel-control-prev" href="#carouselExampleCaptions" role="button" data-slide="prev">
      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
      <span class="sr-only">Previous</span>
    <a class="carousel-control-next" href="#carouselExampleCaptions" role="button" data-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="sr-only">Next</span>

添加.carousel-fade到您的轮播以使用淡入淡出过渡而不是幻灯片为幻灯片制作动画。

<div id="carouselExampleFade" class="carousel slide carousel-fade" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
  <a class="carousel-control-prev" href="#carouselExampleFade" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  <a class="carousel-control-next" href="#carouselExampleFade" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>

添加data-interval=""到 a.carousel-item以更改自动循环到下一项之间的延迟时间。

<div id="carouselExampleInterval" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active" data-interval="10000">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item" data-interval="2000">
      <img src="..." class="d-block w-100" alt="...">
    <div class="carousel-item">
      <img src="..." class="d-block w-100" alt="...">
  <a class="carousel-control-prev" href="#carouselExampleInterval" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  <a class="carousel-control-next" href="#carouselExampleInterval" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>

通过数据属性

使用数据属性轻松控制轮播的位置。data-slide接受关键字prevor next,它改变相对于当前位置的幻灯片位置。或者,使用data-slide-to将原始幻灯片索引传递给 carousel data-slide-to="2",这会将幻灯片位置移动到以 开头的特定索引0

data-ride="carousel"属性用于将轮播标记为在页面加载时开始动画。如果你不使用data-ride="carousel"初始化你的轮播,你必须自己初始化它。它不能与同一轮播的(冗余和不必要的)显式 JavaScript 初始化结合使用。

通过 JavaScript

手动调用轮播:

$('.carousel').carousel()

选项可以通过数据属性或 JavaScript 传递。对于数据属性,将选项名称附加到 中data-,如data-interval="".

字符串 | 布尔值

如果设置为"hover",则暂停旋转木马mouseenter的循环并恢复旋转木马的循环mouseleave。如果设置为false,则将鼠标悬停在轮播上不会暂停它。

在启用触摸的设备上,当设置为 时"hover",循环将暂停touchend(一旦用户完成与轮播的交互)两个时间间隔,然后自动恢复。请注意,这是对上述鼠标行为的补充。

在用户手动循环第一个项目后自动播放轮播。如果是“carousel”,则在加载时自动播放轮播。 转盘是否应连续循环或硬停止。 轮播是否应支持触摸屏设备上的左/右滑动交互。

异步方法和转换

所有 API 方法都是异步的并开始一个转换他们在转换开始但在结束之前立即返回给调用者。此外,过渡组件上的方法调用将被忽略

有关更多信息,请参阅我们的 JavaScript 文档

.carousel(options)

使用可选选项初始化轮播object并开始循环浏览项目。

$('.carousel').carousel({
  interval: 2000

.carousel('cycle')

从左到右循环浏览轮播项目。

.carousel('pause')

停止轮播在项目中循环。

.carousel(number)

将轮播循环到特定帧(基于 0,类似于数组)。在显示目标项目之前(即在slid.bs.carousel事件发生之前)返回给调用者。

.carousel('prev')

循环到上一个项目。在上一个项目显示之前(即在slid.bs.carousel事件发生之前)返回给调用者。

.carousel('next')

循环到下一个项目。在显示下一个项目之前(即在slid.bs.carousel事件发生之前)返回给调用者。

.carousel('dispose')

销毁元素的轮播。

Bootstrap 的 carousel 类公开了两个用于连接 carousel 功能的事件。这两个事件都具有以下附加属性:

  • direction:轮播的滑动方向("left""right")。
  • relatedTarget:作为活动项滑入到位的 DOM 元素。
  • from: 当前项的索引
  • to: 下一项的索引
  • 所有轮播事件都在轮播本身(即在<div class="carousel">)触发。