jim*_*hou 3 reactjs arrow-functions swiper.js
我通过添加svg来定制swiper js的箭头形状和颜色,但它没有任何功能。我最终在每一侧都有两组箭头,一组是我自己的箭头按钮,它不起作用,另一组是内置的 swiper js 箭头,功能良好。
那么如何用我自己的功能良好的箭头替换 swiper 的箭头呢?
import React from "react";
import sportsList from "../utils/sportsList";
import Card from "./Card";
import { Swiper, SwiperSlide } from "swiper/react";
import "swiper/css";
import "swiper/css/navigation";
import { Navigation } from "swiper";
export default function SliderComponent() {
return (
<>
<Swiper
spaceBetween={50}
slidesPerView={4}
onSlideChange={() => console.log("slide change")}
onSwiper={(swiper) => console.log(swiper)}
grabCursor={true}
modules={[Navigation]}
navigation={true}
breakpoints={{
// when window width is >= 320px
320: {
slidesPerView: 1,
spaceBetween: 24,
},
// when window width is >= 480px
480: {
slidesPerView: 2,
spaceBetween: 24,
},
// when window width is >= 640px
640: {
slidesPerView: 6,
spaceBetween: 24,
},
1024: {
slidesPerView: 6,
spaceBetween: 32,
slidesPerGroup: 1,
},
1336: {
slidesPerView: 6,
spaceBetween: 32,
},
}}
className="relative w-10/12 mx-auto flex flex-row"
>
<div className="absolute inset-y-0 left-0 z-10 flex items-center">
<button class="bg-white -ml-2 lg:-ml-4 flex justify-center items-center w-10 h-10 rounded-full shadow focus:outline-none">
<svg
viewBox="0 0 20 20"
fill="currentColor"
class="chevron-left w-6 h-6"
>
<path
fill-rule="evenodd"
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"
></path>
</svg>
</button>
</div>
{sportsList.map((item) => {
return (
<SwiperSlide key={item.id}>
<Card item={item} />
</SwiperSlide>
);
})}
<div class="absolute inset-y-0 right-0 z-10 flex items-center">
<button class="bg-white -mr-2 lg:-mr-4 flex justify-center items-center w-10 h-10 rounded-full shadow focus:outline-none">
<svg
viewBox="0 0 20 20"
fill="currentColor"
class="chevron-right w-6 h-6"
>
<path
fill-rule="evenodd"
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
></path>
</svg>
</button>
</div>
</Swiper>
</>
);
}
Run Code Online (Sandbox Code Playgroud)
要自定义 swiper.js 中的上一个和下一个按钮,您应该将NavigationOptions对象传递给navigation而不是true,如下所示:
navigation={{
nextEl: ".image-swiper-button-next",
prevEl: ".image-swiper-button-prev",
disabledClass: "swiper-button-disabled"
}}
Run Code Online (Sandbox Code Playgroud)
然后你可以将这些类名用于你的按钮
不要忘记删除它,import "swiper/css/navigation";这样它就不会覆盖您的导航按钮样式
你可以看下面的例子
| 归档时间: |
|
| 查看次数: |
16441 次 |
| 最近记录: |