我可以在react-responsive-carousel中自定义Carousel-indicators吗

问题描述 投票:0回答:2

我正在使用 react-responsive-carousel 库。在这里,我想将默认指示器CSS、点形状更改为线形状。 我的代码是,

 <CarouselWrapper
      sx={{ marginTop: "124px", maxHeight: "486px", minHeight: "150px" }}
    >
      <Carousel autoPlay infiniteLoop showArrows={false}>
        <div>
          <Image src={image1} />
        </div>
        <div>
          <Image src={image1} />
        </div>
        <div>
          <Image src={image1} />
        </div>
      </Carousel>
    </CarouselWrapper>

这些指标的当前形状,

是否可以自定义点形状指示器?

css reactjs responsive-design next.js react-responsive-carousel
2个回答
9
投票

是的,您可以使用 JSX 将

renderIndicator
属性作为函数传递给
Carousel
组件来自定义点。您可以查看 this stackblitz 了解此用法的实时工作示例。

<Carousel
      autoPlay
      infiniteLoop
      showArrows={false}
      renderIndicator={(onClickHandler, isSelected, index, label) => {
        const defStyle = { marginLeft: 20, color: "white", cursor: "pointer" };
        const style = isSelected
          ? { ...defStyle, color: "red" }
          : { ...defStyle };
        return (
          <span
            style={style}
            onClick={onClickHandler}
            onKeyDown={onClickHandler}
            value={index}
            key={index}
            role="button"
            tabIndex={0}
            aria-label={`${label} ${index + 1}`}
          >
            {"cust " + index}
          </span>
        );
      }}
    >
      <div>
        <img src={"1.jpeg"} />
      </div>
      <div>
        <img src={"2.jpeg"} />
      </div>
      <div>
        <img src={"3.jpeg"} />
      </div>
    </Carousel>
);

3
投票

使用 SCSS 且需要较少定制的解决方案。使用包装选择器,您可以使用:

  .yourSelector {
    :global(.carousel .control-dots .dot) {
            background-color: blue;
          }
        }
© www.soinside.com 2019 - 2024. All rights reserved.