react中使用swiper7 react中处理swiper垂直显示问题

网上有些使用的是老版本,用法可能不同,先贴出最新版

版本

"react": "17.0.2",
"swiper": "^7.4.1"

安装

yarn add swiper

效果图

横向效果

在这里插入图片描述

垂直效果

在这里插入图片描述

页面中使用

import { Navigation, Pagination, Scrollbar, A11y } from 'swiper';
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';
import 'swiper/css/navigation';
import 'swiper/css/pagination';

<div className='gdswiper2w'>
  <Swiper
    className='gdswiper2'
    modules={[Navigation, Pagination]}
    spaceBetween={10} // slide间隔
    slidesPerView={3} // 一行几个
    direction='vertical' // 方向
    loop='true'
    onSlideChange={() => console.log('slide change')}
    onSwiper={(swiper) => console.log(swiper)}
    navigation={{
      nextEl: '.swbtn1',
      prevEl: '.swbtn2',
      disabledClass: 'disable' // 当导航按钮变为不可用时添加的class,也就是当swiper索引为0时上一张没有prevEl的class类名就会添加一个disable,也就是.swiper-button-prev .disable
    }}
  >
    {[1, 2, 3, 4, 5, 6, 7, 8].map((item, i) => (
      <SwiperSlide key={i} >{item}</SwiperSlide>
    ))}
  </Swiper>
  <div className="swbtn swbtn1"></div>
  <div className="swbtn swbtn2"></div>
</div>

样式

.gdswiper2w{
  position: relative;
  width: 300px;
  height: 602px;
  border: 1px solid ;
  margin: auto;
}
/* 重要:不设置宽高会出错 */
.gdswiper2w .gdswiper2,
.gdswiper2w .gdswiper2 .swiper-wrapper{
  width: 300px;
  height: 602px;
}
.gdswiper2 .swiper-slide{
  width: 100%;
  background: pink;
}
.gdswiper2w .swbtn{
  position: absolute;
  width: 30px;
  height: 30px;
  background: red;
  z-index: 10;
  left: 50%;
  transform: translate(-50%);
}
.gdswiper2w .swbtn1{
  top: -40px;
}
.gdswiper2w .swbtn2{
  bottom: -40px;
}

完整版

import { useState, useEffect } from 'react'
import Header from './header'
import styles from './test.module.scss'
import { Navigation, Pagination, Scrollbar, A11y } from 'swiper';
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';
import 'swiper/css/navigation';
import 'swiper/css/pagination';

const Test = props => {
  return (
    <div>
      <Header></Header>
      <div className={styles.swiper_page}>
        <h1>测试文件</h1>
        <div className='gdswiper2w'>
          <Swiper
            className='gdswiper2'
            modules={[Navigation, Pagination]}
            spaceBetween={10} // slide间隔
            slidesPerView={3} // 一行几个
            direction='vertical' // 方向
            loop='true'
            onSlideChange={() => console.log('slide change')}
            onSwiper={(swiper) => console.log(swiper)}
            navigation={{
              nextEl: '.swbtn1',
              prevEl: '.swbtn2',
              disabledClass: 'disable' // 当导航按钮变为不可用时添加的class,也就是当swiper索引为0时上一张没有prevEl的class类名就会添加一个disable,也就是.swiper-button-prev .disable
            }}
          >
            {[1, 2, 3, 4, 5, 6, 7, 8].map((item, i) => (
              <SwiperSlide key={i} >{item}</SwiperSlide>
            ))}
          </Swiper>
          <div className="swbtn swbtn1"></div>
          <div className="swbtn swbtn2"></div>
        </div>

      </div>
    </div>
  )
}

export default Test;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值