react-swipeable-views轮播图实现下方的切换点控制组件

news2024/9/21 19:02:05

本文是react通过react-swipeable-views创建公共轮播图组件的续文

上一文 我们创建了这样的一个轮播图组件
在这里插入图片描述
但我们已经看到的轮播图 下面都会有小点 展示当前所在的位置
但react-swipeable-views 并没有直接提供 我们需要自己去编写这个组件

我们在components下的 rotationChart 创建一个 Pagination.jsx 组件

然后 在同目录下创建一个样式文件 我这里叫 Pagination.css
参考代码如下

.swiper-pagination{
    position: absolute;
    bottom: 10px;
    right: 10px;
    display: inline-block;
    height: auto;
    width: 100%;
}
ul {
    width: 100%;
    height: auto;
    text-align: center;
}
li {
    list-style: none;
    display: inline-block;
    height: 10px;
    width: 10px;
    border-radius: 50%;
    background-color:#ccc;
    margin: 0 3px;
}
li.selected {
    background-color:rgb(233,32,61);
}

Pagination.jsx 参开代码如下

import React from 'react';

import './Pagination.css';

export default class Pagination extends React.Component{
    render(){
        const quantity = this.props&&this.props.quantity?new Array(this.props.quantity).fill(1):[];
        const currentIndex = this.props&&this.props.currentIndex?this.props.currentIndex:0;
        return (
            <div className = "swiper-pagination">
                <ul>
                    {
                        quantity.map((element,index) => {
                            return <li
                              className = { currentIndex === index?'selected':'' }
                              key = { index }
                            ></li>
                        })
                    }
                </ul>
            </div>
        )
    }
}

这里 我们又多接收了一个参数 叫 currentIndex 判断 如果 currentIndex 和 当前下班的index相同 则给与选中状态

那么 我们来到 components/rotationChart下的index.jsx 更改代码如下

import React from 'react';
import SwipeableViews from 'react-swipeable-views';
import Pagination from './Pagination';

import './index.css';

export default class Swiper extends React.Component{
    constructor(props){
    super(props);
        this.state = {
            currentIndex: 0
        }
    }
    handleChangeIndex = (index) => {
        this.setState({
            currentIndex: index
        })
    }
    render(){
        const banners = this.props&&this.props.banners?this.props.banners:[];
        const height = this.props&&this.props.height?this.props.height:"200px";
        const width = this.props&&this.props.width?this.props.width:"400px";
        return (
            <div className = "swiper" style = { {height,width} }>
                <SwipeableViews onChangeIndex={ this.handleChangeIndex }>
                     {
                        banners.map((element ,index) => {
                            return (
                                <div className='swiper-view' key= { index }>
                                    <img src={ element } alt=""/>
                                </div>
                            )
                        })
                     }
                </SwipeableViews>
                <Pagination currentIndex = { this.state.currentIndex } quantity = { banners.length }/>
            </div>
        )
    }
}

这里我们用了 react-swipeable-views组件中的 onChangeIndex函数 监听了切换事件 返回一个参数

就是当前轮播图所在的下标 然后给到 Pagination组件 运行结果如下
在这里插入图片描述
在这里插入图片描述
此时 我们下方的三个小点就实现了 因为这个组件是自己写的 如果想改样式 直接在 Pagination.css中改就好了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何用R语言在生物群落生态学中的数据统计分析?

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂&#xff0c;涉及众多统计分析方法。本课程以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线&#xff0c;通过多个来…

文件变成chk如何恢复正常

许多人不知道chk文件是什么&#xff1f;其实它是用户在使用“磁盘碎片整理程序”整理硬盘后所产生的“丢失簇的恢复文件”&#xff0c;而在u盘、内存卡等移动设备读取数据过程中&#xff0c;由于断电或强制拔出也容易产生大量的chk文件。那么文件变成chk如何恢复正常呢&#xf…

A/B测试实践全总结

一:基本概念网站设计中,我们经常会面临多个设计方案的选择,比如某个按钮是用红色还是用蓝色,是放左边还是放右边。传统的解决方法通常是集体讨论表决,或者由某位专家或领导来拍板。虽然传统解决办法多数情况下也是有效的,但A/B 测试(A/B Testing)可能是解决这类问题的一个更好的…

小型双轮差速底盘双灰度循迹功能的实现

1. 功能说明 在机器人车体上安装2个 灰度传感器 &#xff0c;实现机器人按照下图所指定的路线进行导航运动&#xff0c;来模拟仓库物流机器人按指定路线行进的工作过程。 2. 使用样机 本实验使用的样机为R023e样机。 3. 功能实现 3.1 电子硬件 在这个示例中&#xff0c;我们采…

[Linux入门篇]一篇博客解决C/C++/Linux System Call文件操作接口的使用

目录 0.前言 1.C / C ->文件操作 1.1 C语言文件操作 1.1.1 C语言文件打开/关闭/写入 1.1.2 C语言文件的追加操作 1.1.3 C语言文件的读取 1.2 C语言文件操作 1.2.1 C文件打开 / 关闭 / 写入 1.2.2 C文件读取 1.2.3 文件追加 2.三个默认输入输出流 2.1 C语言中的三…

#gStore-weekly | gBuilder功能详解之项目管理

1. gBuilder介绍 我们知道知识图谱整个生命周期分为构建、存储管理与应用三个阶段。其中我们之前介绍的图数据库gStore对应解决的是知识图谱的存储与管理这个阶段问题。实际上知识图谱项目中大部分时间都花在知识图谱构建阶段&#xff0c;虽然知识图谱构建不直接体现价值&…

Hermite插值及其Julia实现

文章目录基本原理算法实现无论是Newton插值还是Lagrange插值&#xff0c;都只能在数值本身上满足插值函数与数据节点的重合&#xff0c;Hermite插值则要求其导数值相等。 基本原理 设在节点a⩽x0⩽x1⩽…⩽xn⩽ba\leqslant x_0\leqslant x_1 \leqslant\ldots\leqslant x_n\le…

ESP32使用TCP HTTP访问API接口JSON解析获取数据

ESP32使用TCP HTTP访问API接口JSON解析获取数据API接口代码解析获取时间代码烧录效果总结API接口 单片机常用的API接口基本都是返回的一串JSON格式的数据&#xff0c;这里以ESP32联网获取时间信息作为获取API数据的示例&#xff0c;以便后续移植使用。 很多功能性的API接…

UML-活动图以及PlantUML绘制

介绍 活动图&#xff08;英语&#xff1a;activity diagram&#xff09;是工作流的图形化表示。活动图主要由活动和动作构成&#xff0c;也可以支持分支选择、迭代、并行。在 UML 中&#xff0c;活动图主要用于为计算性和组织性过程&#xff08;即工作流&#xff09;建模&…

PaddlePaddle本地环境安装(windows11系统)

写在前面: 这里是关于win11安装PaddlePaddle的步骤和方法,建议参考官方的方法。截止2023年3月份,PaddlePaddle的版本是2.4.2。 官方参考:飞桨PaddlePaddle快速安装使用方法 建议使用Anaconda安装 ,关于Anaconda创建环境的可以借鉴:深度学习Anaconda环境搭建(比较全面)…

Exposure X7胶片滤镜调色插件免费版下载

ps是我们为图片进行调色的一种必要手法&#xff0c;我们可以通过添加滤镜、使用曲线、调整色相、饱和度等ps手法来对图片加以修饰。下面这篇文章就来为大家介绍一下ps调色方法主要有&#xff0c;ps调色插件怎么用的相关知识。 Exposure X7是一款特别好用的胶片滤镜模拟软件&am…

ESP32设备驱动-MicroSD Card驱动

MicroSD Card驱动 1、SDCard介绍 SD卡是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器…

代码看不懂?ChatGPT 帮你解释,详细到爆!

偷个懒&#xff0c;用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善&#xff0c;如何请他一步步改好&#xff1f;网上看到一段代码&#xff0c;不知道是什么含义&#xff1f;输入 ChatGPT 帮我们解释下。生信宝典 1: 下面是一段 Linux 代码&#xff0c;请帮…

开学季平价好用电容笔有哪些?ipadpro触控笔推荐

众所周知&#xff0c;苹果原装的Pencil的售价由于比较高&#xff0c;所以很多用户都无法入手。那么&#xff0c;市场上会不会有一款价格上只有苹果Pencil五分之一左右、但功能几乎相同的电容笔&#xff1f;事实上&#xff0c;确实存在。国内的平替电容笔&#xff0c;不管是压感…

二点回调测买 源码

如图所示&#xff0c;两点回调测买点的效果图&#xff0c;这是我们常见的一种预测买点计算方法。 现将源码公布如下&#xff1a; DRAWKLINE(H,O,L,C); N:13; A1:REF(HIGH,N)HHV(HIGH,2*N1); B1:FILTER(A1,N); C1:BACKSET(B1,N1); D1:FILTER(C1,N); A2:REF(LOW,N)LLV(LOW,2*N1…

正交采样

文章目录【 1、欧拉公式的频谱 】【 2、模拟正交采样 】【 3、数字正交采样 】【 1、欧拉公式的频谱 】 对于余弦信号 cos(2πf0t)12ej2πf0t12e−j2πf0tcos(2\pi f_0 t)\frac{1}{2}e^{j2\pi f_0 t}\frac{1}{2}e^{-j2\pi f_0 t}cos(2πf0​t)21​ej2πf0​t21​e−j2πf0​t&a…

Shell基础 (一)

目录 一、关于shell 1、什么是shell&#xff1f; 2、shell入门 二、shell进阶&#xff08;重点&#xff09; 1、变量 2、条件判读语句 3、运算符 一、关于shell 1、什么是shell&#xff1f; Shell&#xff08;外壳&#xff09;是一个用C语言编写的程序&#xff0c;它是用…

《程序员面试金典(第6版)》面试题 02.08. 环路检测

题目描述 给定一个链表&#xff0c;如果它是有环链表&#xff0c;实现一个算法返回环路的开头节点。若环不存在&#xff0c;请返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xf…

如果想了解营销的最高境界,请看如何开创新品类?

如果想了解营销的最高境界&#xff0c;请看 如何开创新品类&#xff1f; 中国奶粉第一品牌飞鹤奶粉&#xff5e; 品牌策划人王博总结的方法 趣讲大白话&#xff1a;看看高手怎么想 【安志强趣讲信息科技95期】 ******************************* 不懂品牌营销的程序员不是好厨师…

第一次使用Python for Qt中的问题

在创建带有form的python for qt的时候&#xff0c;使用的库是pySide6&#xff0c;而不是pyqt。 因此&#xff0c;需要安装pyside6。 Running "/usr/bin/python3 -m pip install PySide6 --user" to install PySide6. ERROR: Could not find a version that satisfi…