(记录笔记4)——4.7 Carousel轮播图

4.7 Carousel轮播图

Carousel走马灯

import { Carousel } from 'antd';

function onChange(a, b, c) {
  console.log(a, b, c);
}

ReactDOM.render(
  <Carousel afterChange={onChange}>
    <div><h3>1</h3></div>
    <div><h3>2</h3></div>
    <div><h3>3</h3></div>
    <div><h3>4</h3></div>
  </Carousel>,
  mountNode);
/* For demo */
.ant-carousel .slick-slide {
  text-align: center;
  height: 160px;
  line-height: 160px;
  background: #364d79;
  overflow: hidden;
}

.ant-carousel .slick-slide h3 {
  color: #fff;
}

一.文字背景轮播

1.Carousel组件

  • 引入Carousel:import {Carousel} from “antd”;
  • autoplay:设置自动切换
  • effect="fade":指定淡入淡出动画

//src/pages/ui/carousel.js
import React from 'react';
import {Card, Carousel} from "antd";
import "./ui.less";

export default class Carousels extends React.Component{


  render() {
    return(
      <div>
        <Card title="文字背景轮播" className="card-wrap">
          <Carousel autoplay effect="fade">
            <div><h3>Ant Motion Banner - React</h3></div>
            <div><h3>Ant Motion Banner - Vue</h3></div>
            <div><h3>Ant Motion Banner - Angular</h3></div>
          </Carousel>
        </Card>
      </div>
    );
  }
}

二.图片轮播

既然是图片轮播,要将内容换成图片

  • <div><img src="/carousel-img/carousel-1.jpg" alt=""/></div>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ruUwBLbz-1640781420699)(http://ws1.sinaimg.cn/large/006pJUwqly1g2vd29322ej31ec0kmqdg.jpg)]

将resource文件下的carousel文件夹拷贝到public下:

在这里插入图片描述

  • 导入自定义样式:

  • 修改图片的默认高度,!important设置优先级

  • + .slider-wrap .ant-carousel .slick-slide {
    +  height: 240px!important;
    + }
    
  • //src/pages/ui/ui.less
    .card-wrap {
      margin-bottom: 10px;
        button {
        margin-right: 10px;
      }
    }
    
    /* modals */
    /* use css to set position of modal */
    .vertical-center-modal {
      text-align: center;
      white-space: nowrap;
    }
    
    .vertical-center-modal:before {
      content: "";
      display: inline-block;
      height: 100%;
      vertical-align: middle;
      width: 0;
    }
    
    .vertical-center-modal .ant-modal {
      display: inline-block;
      vertical-align: middle;
      top: 0;
      text-align: left;
    }
    
    
    /* For demo */
    .ant-carousel .slick-slide {
      text-align: center;
      height: 160px;
      line-height: 160px;
      background: #364d79;
      overflow: hidden;
    }
    
    .ant-carousel .slick-slide h3 {
      color: #fff;
    }
    
    .slider-wrap .ant-carousel .slick-slide {
      height: 240px!important;
    }
    
    
//src/pages/ui/carousel.js
import React from 'react';
import {Card, Carousel} from "antd";
import "./ui.less";

export default class Carousels extends React.Component {
  render() {
    return (
      <div>
        <Card title="文字背景轮播" className="card-wrap">
          <Carousel autoplay effect="fade">
            <div><h3>Ant Motion Banner - React</h3></div>
            <div><h3>Ant Motion Banner - Vue</h3></div>
            <div><h3>Ant Motion Banner - Angular</h3></div>
          </Carousel>
        </Card>
        <Card title="图片轮播" className="slider-wrap">
          <Carousel autoplay effect="fade" >
            <div><img src="/carousel-img/carousel-1.jpg" alt=""/></div>
            <div><img src="/carousel-img/carousel-2.jpg" alt=""/></div>
            <div><img src="/carousel-img/carousel-3.jpg" alt=""/></div>
          </Carousel>
        </Card>
      </div>
    );
  }
}

API

Carousel


参数说明类型默认值
afterChange切换面板的回调function(current)
autoplay是否自动切换booleanfalse
beforeChange切换面板的回调function(from, to)
dots是否显示面板指示点booleantrue
easing动画效果stringlinear
effect动画效果函数(淡入,淡出),可取 scrollx, fadestringscrollx
vertical垂直显示/垂直方向booleanfalse
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要取消 Bootstrap Carousel 的自动轮播并改为手动切换,需要使用 JavaScript 进行一些编程。 以下是实现步骤: 1. 在 Carousel 的 HTML 标签中添加 data-interval="false" 属性,以禁用自动轮播。 2. 针对每个 Carousel 实例,使用 JavaScript 获取该 Carousel 的 ID,然后使用 jQuery 在 Carousel 上绑定 slide.bs.carousel 事件,该事件会在 Carousel 的幻灯片切换时触发。 3. 在 slide.bs.carousel 事件的回调函数中,使用 jQuery 获取当前 Carousel 的 active 幻灯片索引和下一个幻灯片索引,然后根据这些索引获取相应的控制按钮(prev 和 next),并将它们的 disabled 属性设置为 false,这样用户就可以手动切换幻灯片了。 下面是一个示例代码,可以帮助你更好地理解如何实现手动切换: HTML: ```html <div id="carouselExampleControls" class="carousel slide" data-ride="carousel" data-interval="false"> <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> <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> <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> </a> </div> ``` JavaScript: ```javascript $(document).ready(function() { $('#carouselExampleControls').on('slide.bs.carousel', function (e) { var active = $(e.target).find('.carousel-item.active'); var next = e.relatedTarget; var prevControl = $(this).find('.carousel-control-prev'); var nextControl = $(this).find('.carousel-control-next'); if(next.classList.contains('carousel-item-left') && active.index() === 0) { prevControl.prop('disabled', true); nextControl.prop('disabled', false); } else if(next.classList.contains('carousel-item-right') && active.index() === $(this).find('.carousel-item').length - 1) { prevControl.prop('disabled', false); nextControl.prop('disabled', true); } else { prevControl.prop('disabled', false); nextControl.prop('disabled', false); } }); }); ``` 在这个示例代码中,我们使用了 jQuery 来监听 slide.bs.carousel 事件,并在回调函数中根据当前幻灯片索引和下一个幻灯片索引来启用或禁用控制按钮。当幻灯片处于最左侧或最右侧时,我们禁用相应的控制按钮,以避免切换到不存在的幻灯片。否则,我们启用所有控制按钮,以允许用户手动切换幻灯片。 希望这个示例代码能够帮助你实现 Bootstrap Carousel 的手动切换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值