首页 > 其他分享 >基于React使用swiperjs实现竖向滚动自动轮播

基于React使用swiperjs实现竖向滚动自动轮播

时间:2023-11-14 12:33:36浏览次数:42  
标签:react 轮播 App React 竖向 Math randomColor import swiper


很多文章,都只提供了js部分,包括官方的文档也只有js部分,如果css设置不正确,会导致轮播图不自动播放。

使用的swiper版本:v11.0.3

文档

实现效果

基于React使用swiperjs实现竖向滚动自动轮播_react.js

使用vite创建react应用

pnpm create vite react-app --template react

完整依赖 package.json

{
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "swiper": "^11.0.3"
  },
  "devDependencies": {
    "@types/react": "^18.2.15",
    "@types/react-dom": "^18.2.7",
    "@vitejs/plugin-react": "^4.0.3",
    "eslint": "^8.45.0",
    "eslint-plugin-react": "^7.32.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.3",
    "vite": "^4.4.5"
  }
}

App.js

// Import Swiper React components
import { Swiper, SwiperSlide } from "swiper/react";

// import Swiper core and required modules
import { Autoplay } from "swiper/modules";

// import Swiper styles
import "swiper/css";
import "swiper/css/autoplay";

import "./App.css";

// 获取一个随机颜色值
function randomColor() {
  let r = Math.floor(Math.random() * 255);
  let g = Math.floor(Math.random() * 255);
  let b = Math.floor(Math.random() * 255);

  return `rgb(${r},${g},${b})`;
}

// 轮播数据
const list = [
  {
    backgroundColor: randomColor(),
  },
  {
    backgroundColor: randomColor(),
  },
  {
    backgroundColor: randomColor(),
  },
  {
    backgroundColor: randomColor(),
  },
];

function App() {
  return (
    <div className="swiper__wrap">
      <Swiper
        modules={[Autoplay]}
        direction="vertical"
        loop={true}
        slidesPerView={1}
        autoplay={{
          delay: 3000, // ms
        }}
      >
        {list.map((item, index) => {
          return (
            <SwiperSlide>
              <div
                className="swiper__slide"
                style={{ backgroundColor: item.backgroundColor }}
              >
                {index + 1}
              </div>
            </SwiperSlide>
          );
        })}
      </Swiper>
    </div>
  );
}

export default App;

App.css

.swiper__wrap {
  margin: 0 auto;
  margin-top: 200px;
}

.swiper {
  height: 200px;
  width: 300px;
}

.swiper__slide {
  line-height: 200px;
  background-color: pink;
  color: #fff;
  text-align: center;
}

轮播的关键 需要设置swiper容器的尺寸

.swiper {
  height: 200px;
  width: 300px;
}

参考文章

有关swiper动态改变数据遇到的坑(不能自动滚动,自动跟新数据,切换不正常)


标签:react,轮播,App,React,竖向,Math,randomColor,import,swiper
From: https://blog.51cto.com/mouday/8366005

相关文章

  • react| 封装TimeLine组件
    功能支持居中/局左/居右布局可自定义线条颜色默认情况下图标是圆形,可自定义圆形颜色和大小,同时也可以自定义图标支持自定义内容效果constdata=[{"title":"2022-12-0512:03:40","des":"茶陵县实时广播防火宣传"},...]<TimeLineda......
  • 微信小程序--swiper轮播图出现抖动问题
    问题:在手机上,swiper的item一直在抖动,不滚动了。官方: 解决方案:(参考别人的文章,放在离自己的项目代码里)wxml<viewclass="swiperBox"style="{{defaultData.indicatorColors}}"><swiperclass="slide-swiper"style="height:{{defau......
  • 如何使用React/JSX在样式加载完成之前等待React的加载?
    在React中,可以使用加载状态来等待样式加载完成之后再渲染React组件。以下是一种常见的方法:创建一个加载状态isLoading并将其初始化为true。在componentDidMount生命周期方法中使用setTimeout函数来模拟样式加载的延迟。在延迟结束后,将isLoading状态设置为false。在渲染方法中,使用条......
  • 图文并茂手把手教你基于React多种方案使用实现ChatGPT打字机效果
    代码仓库码云仓库前期准备前端项目后端接口(OpenAI接口即可)启动一个新的React项目如果小伙伴们有现有项目,可跳过此步骤直接进入下一步~Next.js是一个全栈式的React框架。它用途广泛,可以让你创建任意规模的React应用——可以是静态博客,也可以是复杂的动态应用。......
  • #yyds干货盘点#react之useEffect
    React的HooksAPI为我们提供了一种新的处理副作用的方式——useEffect。useEffect函数接受两个参数:一个是_副作用函数_和一个_依赖数组_。副作用函数是在组件render之后运行,而依赖数组告诉React何时应该执行或跳过该副作用。如果没有提供依赖数组,`useEffect`将在每次渲染后运行。......
  • ReactNative进阶(十):WebView 应用详解
    (文章目录)一、WebView组件介绍使用WebView组件可通过url来加载显示一个网页,也可以传入一段html代码来显示。下面对其主要属性和方法进行介绍。1.主要属性source:在WebView中载入一段静态的html代码或是一个url(还可以附带一些header选项);automaticallyAdjustCon......
  • #yyds干货盘点#react的useState源码分析
    简单说下为什么React选择函数式组件,主要是class组件比较冗余、生命周期函数写法不友好,骚写法多,functional组件更符合React编程思想等等等。更具体的可以拜读dan大神的blog。其中Functioncomponentscapturetherenderedvalues这句十分精辟的道出函数式组件的优势。但是在16.8之......
  • 记录--ECharts — 饼图相关功能点(内环、外环、环形间隔、环形文字、轮播动画)
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助记录一下在公司遇到的一些功能,以及相关实现以上的内容我花了一周时间去实现的,自己也觉得时间很长,但主要因为很少使用ECharts,导致使用的过程中大部分的时间都在查文档。对于上面的这些功能点,其实算是写了两遍吧......
  • react组件间通信
    1.父组件向子组件通信import{useState}from'react';functionButton(props){return(<div>{props.name}</div>)}functionApp(){constmsg=useState('神雕侠侣')return(<divclassName="App">&l......
  • 打工笔记-------------------------.NET Reactor使用方法
    .NETReactor是一个用于保护.NET应用程序的代码混淆器和加密器。它可以防止应用程序被反编译和篡改使用步骤下载和安装.NETReactor:从DongleSoftware的官方网站下载.NETReactor5.9.8.0的安装程序,并按照提示进行安装。创建或导入项目:在.NETReactor中,创建一个新的......