This is how its looking

import React from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import Link from "next/link";

function SampleNextArrow(props) {
    const { className, style, onClick } = props;
    const updatedStyle = {
        ...style,
        display: "block",
        background: "grey",
        padding: "3px",
        // borderRadius: "50%",
        width: "25px",
        height: "25px",
      };
    return (
      <div
        className={className}
        style={updatedStyle}
        onClick={onClick}
      />
    );
  }
  
  function SamplePrevArrow(props) {
    const { className, style, onClick } = props;
    const updatedStyle = {
      ...style,
      display: "block",
      background: "grey",
      padding: "3px",
    //   borderRadius: "50%",
      width: "25px",
      height: "25px",
    };
  
    return (
      <div
        className={className}
        style={updatedStyle}
        onClick={onClick}
      />
    );
  }

export default function SimpleSlider({ slides, slidesToShow, centerPadding }) {

    var settings = {
        // className: "center",
        dots: true,
        infinite: true,
        speed: 2000,
        arrows: true,
        autoplay: true,
        autoplaySpeed: 3000,
        slidesToShow: slidesToShow,
        pauseOnHover: true,
        centerMode: true,
        centerPadding: centerPadding,
        nextArrow: <SampleNextArrow />,
        prevArrow: <SamplePrevArrow />,
        responsive: [
            {
              breakpoint: 1024,
              settings: {
                slidesToShow: 3,
                slidesToScroll: 3,
                infinite: true,
                dots: true,
                arrows: false,
              }
            },
            {
              breakpoint: 600,
              settings: {
                slidesToShow: 2,
                slidesToScroll: 2,
                initialSlide: 2,
                arrows: false,
              }
            },
            {
              breakpoint: 480,
              settings: {
                slidesToShow: 1,
                slidesToScroll: 1,
                arrows: false,
              }
            }
          ],
        appendDots: (dots) => (
            <ul
                style={{
                    display: "inline-block",
                    margin: "0 5px",
                    padding: "5px",
                    borderRadius: "25%",
                    cursor: "pointer",
                }}
            >
                {dots}
            </ul>
        ),
    };
    

    return (
        <>  
            <Slider  {...settings} className="mb-10 rounded-xl relative">
                {slides.map((slide) => (
                    <div className="h-[16rem] py-[1rem] px-[0.25rem]" key={slide.id}>
                        <Link href={slide.link}>
                            <img
                                className="w-full rounded-xl hover:scale-110"
                                src={slide.backdrop_path}
                                alt={说slide ${slide.id}说}
                            />
                        </Link>
                    </div>
                ))}
            </Slider>
        </>
    );
}

我试图在我的下一个JS项目中实现这个react 圆滑的 carousel ,但由于某些原因,响应不起作用 每当我降低移动查看屏幕的大小(比如480px)时,它就会从它应该的位置消失,相反,当我增大大小时,它会开始同时显示所有幻灯片

下面是组件调用

<Test2
        slides={slideData}
        slidesToShow={1} 
        centerPadding="300px" 
        />

推荐答案

看来您应该像这样修改您的设置.

responsive: [
  {
    breakpoint: 1024,
    settings: {
      slidesToShow: 3,
      slidesToScroll: 3,
      infinite: true,
      dots: true,
      arrows: false,
    },
  },
  {
    breakpoint: 600,
    settings: {
      slidesToShow: 2,
      slidesToScroll: 2,
      initialSlide: 2,
      arrows: false,
      centerPadding: "50px", // Add this line to reduce centerPadding for smaller screens
    },
  },
  {
    breakpoint: 480,
    settings: {
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: false,
      centerPadding: "0px", // Add this line to remove centerPadding for smallest screens
    },
  },
],

Css相关问答推荐

如何为FLEX方向编写响应式的CSS

如何在Delphi的TMS Web Core上向窗体添加背景图像

2 列 UL,右列中的列表项数量为奇数?

我想在视频上使用混合混合模式的 svg

我无法覆盖 react ui 库中的组件样式

用css重复表格边框

为什么 flexbox 中的 在应用居中时不会调整大小?

如何为柔和的配色方案提供易于使用的高对比度替代方案?

圆形加载动画

为什么我们将