0
votes

AntD Carousel n'affiche que le premier div

Voici l'essentiel du Carousel de mon code.

<Carousel arrows={true}>
                <div className='new-offers-item'>
                  <div className='new-offers-item-bg'>
                    <div className='new-offers-item-rent-tag'>TEXT HERE</div>
                    <div className='new-offers-item-favourite' />
                    <div className='new-offers-posted-at'>ANOTHER TEXT HERE, 10:44</div>
                  </div>
                  <div className='new-offers-item-location-rate'>
                    <div className='new-offers-item-location'>street address, 5<br />CC Espiral,<br /> 1 floor</div>
                    <div className='new-offers-item-rate'>
                      <div>
                        <span className='new-offers-item-rate-value'>240 000 </span>
                        <span className='new-offers-item-rate-unit'>abcd.</span>
                      </div>
                    </div>
                  </div>
                  <div className='new-offers-item-city-street'>
                    <span>City</span>
                    <span>&nbsp;</span>
                    <span>Address1</span>
                  </div>
                  <div className='new-offers-item-description'>
                    <div className='new-offers-item-description-row'>
                      <div className='new-offers-item-description-row-space'>
                        <div className='new-offers-item-description-row-space-division'>
                          <div>
                            <img src={sqM} />
                          </div>
                          <p>
                            <span>Total</span>
                            <span>600</span>
                          </p>
                          <p>
                            <span>&nbsp;</span>
                            <span className='span-divider'>/</span>
                          </p>
                          <p>
                            <span>Sale</span>
                            <span>300</span>
                          </p>
                        </div>
                        <div className='new-offers-item-description-row-metre-rate'>
                          <p>
                            <span>Per meter</span>
                          </p>
                          <p>
                            <span>6 700 </span>
                            <span>unit<sup>2</sup></span>
                          </p>
                        </div>
                      </div>
                      <div className='new-offers-item-description-row'>
                        <div className='new-offers-item-description-row-space'>
                          <div className='new-offers-item-description-row-space-division'>
                            <div className='new-offers-item-description-second'>
                              <img src={bldgIcon} />
                              <span className='item-type'>Торговый центр</span>
                            </div>
                          </div>
                          <div className='new-offers-item-description-row-metre-rate'>
                            <div className='new-offers-item-description-second'>
                              <img src={doorsIcon} />
                              <span className='item-type'>10 floor</span>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
                <div className='new-offers-item'>
                  <div className='new-offers-item-bg'>
                    <div className='new-offers-item-rent-tag'>TEXT HERE</div>
                    <div className='new-offers-item-favourite' />
                    <div className='new-offers-posted-at'>ANOTHER TEXT HERE, 10:44</div>
                  </div>
                  <div className='new-offers-item-location-rate'>
                    <div className='new-offers-item-location'>street address, 5<br />CC Espiral,<br /> 1 floor</div>
                    <div className='new-offers-item-rate'>
                      <div>
                        <span className='new-offers-item-rate-value'>240 000 </span>
                        <span className='new-offers-item-rate-unit'>abcd.</span>
                      </div>
                    </div>
                  </div>
                  <div className='new-offers-item-city-street'>
                    <span>City</span>
                    <span>&nbsp;</span>
                    <span>Address1</span>
                  </div>
                  <div className='new-offers-item-description'>
                    <div className='new-offers-item-description-row'>
                      <div className='new-offers-item-description-row-space'>
                        <div className='new-offers-item-description-row-space-division'>
                          <div>
                            <img src={sqM} />
                          </div>
                          <p>
                            <span>Total</span>
                            <span>600</span>
                          </p>
                          <p>
                            <span>&nbsp;</span>
                            <span className='span-divider'>/</span>
                          </p>
                          <p>
                            <span>Sale</span>
                            <span>300</span>
                          </p>
                        </div>
                        <div className='new-offers-item-description-row-metre-rate'>
                          <p>
                            <span>Per meter</span>
                          </p>
                          <p>
                            <span>6 700 </span>
                            <span>unit<sup>2</sup></span>
                          </p>
                        </div>
                      </div>
                      <div className='new-offers-item-description-row'>
                        <div className='new-offers-item-description-row-space'>
                          <div className='new-offers-item-description-row-space-division'>
                            <div className='new-offers-item-description-second'>
                              <img src={bldgIcon} />
                              <span className='item-type'>Торговый центр</span>
                            </div>
                          </div>
                          <div className='new-offers-item-description-row-metre-rate'>
                            <div className='new-offers-item-description-second'>
                              <img src={doorsIcon} />
                              <span className='item-type'>7 floor</span>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </Carousel>

Seul le premier div.new-offers-item est affiché. Comment puis-je afficher le second et les autres?


0 commentaires

3 Réponses :


1
votes

C'est comme prévu. Cela montre le premier élément comme actuel et pour passer à l'élément suivant, vous pouvez cliquer sur la navigation. Vous pouvez définir l'arrière-plan de l'élément new-offer-item pour voir la navigation. Vous pouvez vous référer à l'exemple ici:

https://codesandbox.io/s/nn44020wzp


9 commentaires

Merci. Comment configurer le Carousel pour afficher 3 .new-offers-item avant de passer au 3 suivant? Emballer le 3 .new-offers-item à celui contenant div est le seul moyen?


Je pense que oui et vous devez ajouter du CSS pour que vos 3 éléments restent alignés


J'ai ajouté display: flex seulement maintenant les flèches Slick Carousel ont disparu. Pas transparent, je ne les trouve pas dans la mise en page html.


Je suppose que c'est comme prévu puisque vous n'avez qu'un "gros" article. Que veux-tu accomplir? peut-être cherchez-vous à afficher plusieurs éléments à la fois?


Lier à CodeSandbox est bien, mais vous devriez vraiment inclure les parties les plus pertinentes de la solution dans votre réponse.


Je viens de fournir un exemple pour expliquer le fonctionnement du carrousel. Et il semble qu'El veuille faire quelque chose de plus. Btw j'ai mis à jour pour refléter ce que je voulais dire avec la question la plus récente


Je voulais un carrousel d'un look de . Voudrait également masquer les flèches lorsque le premier / dernier élément est le premier / dernier de l'affichage actuel. Est-ce réalisable avec AntD?


@duc mai Pourriez-vous commenter ce que vous avez fait sur Codesandbox s'il vous plaît? Avez-vous enveloppé 2 div dans le Carousel dans un div d'emballage ou y avait-il plus que cela? Je ne pouvais pas voir les flèches sur l'exemple Codesandbox.


ce que j'ai fait était - envelopper deux divs en un - affichage: flex important pour le wrapper - flexbasis: 50% pour les enfants, il semble que vous ayez trouvé ce dont vous avez besoin vous-même :)



-1
votes

C'est l'âme qui a produit le résultat souhaité. Ajouté 2 de plus .new-offers-item.

const carouselSettings = {
      arrows: true,
      slidesToShow: 3,
      slidesToScroll: 1
    };

Ensuite, ajoutez le const carouselSettings au composant Carousel :

... .

Basé sur la documentation react-slick et aire de jeux sur https://github.com/akiran/react-slick . p >

AntD Carousel ne place pas les flèches sur la mise en page html lorsque le nombre d'éléments à l'intérieur du carrousel est égal à slidesToShow . Les flèches qui sont des boutons sont transparentes par défaut, vous devez mettre une image de flèche à l'intérieur des boutons . Les classes css pour les boutons sont .ant-carousel .slick-prev et .ant-carousel .slick-next .


1 commentaires

Nous discutons de la bibliothèque de carrousel Antd, pas de slick slider bro.



1
votes

Depuis antd utilisant slick slider pour leur carrousel, vous devriez vous référer à leur API Pour être plus précis, vous devrez utiliser prop: "slidesToShow" afin d'afficher le nombre de diapositives dont vous avez besoin.

Par exemple:

const settings = {
      dots: true,
      slidesToShow: 3,
      slidesToScroll: 1
};


0 commentaires