无法从反应光滑获得期望的结果

问题描述

我正在尝试实施React slick's个多项目轮播。预期结果如下

enter image description here

但我希望中心元素像弹出一样

enter image description here

但是我能做到这一点

enter image description here

我只希望一次弹出三个元素,然后弹出中心元素。这是我的代码

import React,{ Component } from 'react'    
import Slider from "react-slick";
import Demoguy from './DemoguyMentors.png';
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";

export class Stories extends Component {
 render() {
    
  const settings = {
    className: "center",centerMode: true,infinite: true,slidesToShow: 4,speed: 500,autoplay:true,autoplayspeed:1000
  };
    return (
        <div>
            <div className="SliderWrapper">
                <Slider {...settings}>
                <div className="AchiversDetails">
                    <div className="MentorsPicAndlogoWrapper">
                        <img className="MentorImg" src={Demoguy}></img>
                    </div>
                    <div className="MentorsDetailsWordWrapper">
                            <h3>Lorem ipppsum</h3>
                            <p>
                            Lorem ipsum dolor sit amet,consectetur adipiscing elit. Vestibulum 
                        pellentesque metus ligula,ac elementum 
                        velit mollis in. Praesent ut dictum diam. Vivamus gravida eros at nunc 
                        vehicula pulvinar. Aliquam erat volutpat. 
                        Nulla suscipit bibendum quam quis pharetra. Aliquam odio leo,molestie eu 
                          luctus fringilla,suscipit at ipsum.
                        </p>
                    </div>   
                </div>

                <div className="AchiversDetails">
                    <div className="MentorsPicAndlogoWrapper">
                        <img className="MentorImg" src={Demoguy}></img>
                        
                    </div>
                    <div className="MentorsDetailsWordWrapper">
                        <h3>LOREM IPPSUM</h3>
                        <p>
                        Lorem ipsum dolor sit amet,molestie eu 
                        luctus fringilla,suscipit at ipsum.
                        </p>
                    </div> 
                </div>
                <div className="AchiversDetails">
                    <div className="MentorsPicAndlogoWrapper">
                        <img className="MentorImg" src={Demoguy}></img>
                       
                    </div>
                    <div className="MentorsDetailsWordWrapper">
                            <h3>Lorem ipppsum</h3>
                            <p>
                                Lorem ipsum dolor sit amet,consectetur adipiscing elit. 
                                Vestibulum pellentesque metus ligula,ac elementum 
                                velit mollis in. Praesent ut dictum diam. Vivamus gravida eros at 
                                nunc vehicula pulvinar. Aliquam erat volutpat. 
                                Nulla suscipit bibendum quam quis pharetra. Aliquam odio leo,molestie eu luctus fringilla,suscipit at ipsum.
                            </p>
                    </div>   
                </div>

                <div className="AchiversDetails">
                    <div className="MentorsPicAndlogoWrapper">
                        <img className="MentorImg" src={Demoguy}></img>
                      
                    </div>
                    <div className="MentorsDetailsWordWrapper">
                        <h3>LOREM IPPSUM</h3>
                        <p>
                            Lorem ipsum dolor sit amet,consectetur adipiscing elit. Vestibulum 
                            pellentesque metus ligula,ac elementum 
                            velit mollis in. Praesent ut dictum diam. Vivamus gravida eros at 
                            nunc vehicula pulvinar. Aliquam erat volutpat. 
                            Nulla suscipit bibendum quam quis pharetra. Aliquam odio leo,suscipit at ipsum.
                        </p>
                    </div> 
                </div>

                <div className="AchiversDetails">
                    <div className="MentorsPicAndlogoWrapper">
                        <img className="MentorImg" src={Demoguy}></img>
                      
                    </div>
                    <div className="MentorsDetailsWordWrapper">
                        <h3>LOREM IPPSUM</h3>
                        <p>
                        Lorem ipsum dolor sit amet,molestie eu 
                            luctus fringilla,suscipit at ipsum.
                        </p>
                    </div> 
                </div>
                </Slider>
            </div>
        </div>
    )
  }
}

export default Stories

注意:当我更改slidetoShow:3时。完全可见的只有两个元素,而两侧只有一半。 以下是我使用过的CSS

.AchiversDetails{
 Box-shadow: 0px 4px 52px rgba(70,74,140,0.24);
 padding: 3rem;
 border-radius: 2%;
}


.slick-slide {
  margin: 27px 27px;
}
.slick-list {
  margin: 0 -27px;
}

其余类别不包含任何CSS属性

所需的最终输出

enter image description here

我可以实现盒子里面的css。但它是我无法实现的滑块。

解决方法

除非您为centerMode设置使用奇数值,否则

slidesToShow无法正常工作。您应该可以使用centerPadding选项而不是slick-slideslick-list CSS来调整幻灯片之间的填充。

  const settings = {
    className: "center",centerMode: true,centerPadding: '60px',infinite: true,slidesToShow: 3,speed: 500,autoplay:true,autoplayspeed:1000
  };

要使您的中心幻灯片比其他幻灯片更大,可以使用CSS定位并放大:

.slick-center .AchiversDetails {
    transform: scale(1.2);
}