0
votes

le bouton de lecture et de pause ne fonctionne pas dans le carrousel?

J'effectue une lecture et une pause du carrousel en utilisant jquery et javascript dans bootstrap. J'ai écrit le code mais je ne suis pas arrivé là où j'ai manqué. Voici le code complet qui pourrait vous laisser comprendre mon erreur. Le problème est que les boutons de lecture et de pause font partie du champ d'application du carrousel et que le comportement qu'un bouton donne normalement n'est pas le même ici. Pour la situation actuelle, les boutons sont positionnés sous le bouton précédent et exécutent la même action que celle exécutée par prev, c'est-à-dire montrant l'image précédente.

    <!DOCTYPE html>
    <html lang="en">

  <head>
    <!-- Required meta tags always come first -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="node_modules/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" href="node_modules/bootstrap-social/bootstrap-social.css">
    <link rel="stylesheet" href="css/styles.css">
    <title>Ristorante Con Fusion</title>
    </head>

<body>
    <div class="container">
        <div class="row row-content">
            <div class="col">
                <div id="mycarousel" class="carousel slide" data-ride="carousel">
                    <div class="carousel-inner" role="listbox">
                        <div class="carousel-item active">
                            <img class="d-block img-fluid"
                                 src="img/uthappizza.png" alt="uthappizza">
                            <div class="carousel-caption d-none d-md-block">
                                <h2>Uthappizza<span class="badge badge-danger">HOT</span><span class="badge badge-pill badge-secondary">$4.99</span></h2>
                                <p class="d-none d-sm-block">A unique combination of Indian Uthappam</p>                                
                            </div>
                        </div>
                        <div class="carousel-item">
                            <img class="d-block img-fluid"
                                 src="img/buffet.png" alt="buffet">
                            <div class="carousel-caption d-none d-md-block">
                                <h2>Weekend Grand Buffet<span class="badge badge-danger">NEW</span></h2>
                                <p class="d-none d-sm-block">Featuring mouthwatering combinations with a choice of five different salads.</p>                                
                           </div>    
                        </div>
                        <div class="carousel-item">
                            <img class="d-block img-fluid"
                                 src="img/alberto.png" alt="alberto">
                           <div class="carousel-caption d-none d-md-block">
                               <h2>Alberto Somayya</h2>
                                <h4>Executive Chef</h4>
                                <p class="d-none d-sm-block">Award winning three-star Michelin chef with wide International experience.</p>
                           </div>
                        </div>
                    </div>
                    <ol class="carousel-indicators">
                        <li data-target="#mycarousel" data-slide-to="0" class="active"></li>
                        <li data-target="#mycarousel" data-slide-to="1"></li>
                        <li data-target="#mycarousel" data-slide-to="2"></li>
                    </ol>
                    <a class="carousel-control-prev" href="#mycarousel" role="button" data-slide="prev">
                        <span class="carousel-control-prev-icon"></span>
                    </a>
                    <a class="carousel-control-next" href="#mycarousel" role="button" data-slide="next">
                        <span class="carousel-control-next-icon"></span>
                    </a>
                    <div class="btn-group" id="carouselButton">
                        <button class="btn btn-danger btn-sm" id="carousel-pause">
                            <span class="fa fa-pause"></span>
                        </button>&nbsp;
                        <button class="btn btn-danger btn-sm" id="carousel-play">
                            <span class="fa fa-play"></span>
                        </button>
                    </div>
                </div>
            </div>
        </div>
         <div class="row row-content align-items-center">
            <div class="col-12 col-sm-4 order-sm-last col-md-3">
                <h3>Our Lipsmacking Culinary Creations</h3>
            </div>
            <div class="col col-sm order-sm-first col-md">
                <div class="media">
                    <img class="d-flex mr-3 img-thumbnail align-self-center" src="img/uthappizza.png" alt="uthappizza">
                    <div class="media-body">
                        <h2 class="mt-0">Uthappizza<span class="badge badge-danger">HOT</span><span class="badge badge-pill badge-secondary">$4.99</span></h2>
                        <p>A unique combination of Indian Uthappam (pancake) and Italian pizza.</p>
                    </div>
                </div>
            </div>
        </div>


        <div class="row row-content align-items-center">
            <div class="col-12 col-sm-4 col-md-3">
                <h3>This Month's Promotions</h3>
            </div>
            <div class="col col-sm col-md">
                <div class="media">
                    <img class="d-flex order-sm-last mr-3 img-thumbnail align-self-center" src="img/buffet.png" alt="buffet">
                    <div class="media-body">
                        <h2 class="mt-0">Weekend Grand Buffet<span class="badge badge-danger">NEW</span></h2>
                        <p>Featuring mouthwatering combinations with a choice of five different salads.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="row row-content align-items-center">
            <div class="col-12 col-sm-4 order-sm-last col-md-3">
                <h3>Meet our Culinary Specialists</h3>
            </div>
            <div class="col col-sm col-md order-sm-first">
                <div class="media">
                    <img class="d-flex mr-3 img-thumbnail align-self-center" src="img/alberto.png" alt="alberto">
                    <div class="media-body">
                        <h2 class="mt-0">Alberto Somayya<span class="badge badge-danger">Exclusive</span><span class="badge badge-pill badge-secondary">$4.99</span></h2>
                        <h4>Executive Chef</h4>
                        <p>Award winning three-star Michelin chef with wide International experience.</p>
                    </div>
                </div>
            </div>
        </div> 
    </div>
        <!-- jQuery first, then Popper.js, then Bootstrap JS. -->
    <script src="node_modules/jquery/dist/jquery.slim.min.js"></script>
    <script src="node_modules/popper.js/dist/umd/popper.min.js"></script>
    <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
    <script>
        $(document).ready(function(){
            $('#mycarousel').carousel({ interval : 2000 });
            $('#carousel-pause').click(function(){
                $('#mycarousel').carousel('pause');
            });
            $('#carousel-play').click(function(){
                $('#mycarousel').carousel('cycle');
            });
        });
    </script>

    </body>

</html>

Comportement correct de la lecture et de la mise en pause du carrousel.


8 commentaires

Cela semble fonctionner pour moi. Qu'est-ce qui ne va pas précisément? Avez-vous des erreurs JavaScript dans la console de votre navigateur?


Chaque fois que je clique sur l'un des boutons, il me montre la diapositive suivante. Je peux voir que mes boutons ne sont pas cliqués. Je ne reçois aucune erreur.


Il peut être utile d'inclure un exemple minimal et reproductible illustrant le problème. Avez-vous inclus les bibliothèques jQuery et Bootstrap?


En supprimant le code jquery, il se comporte de la même manière dans la diapositive suivante. lorsque le bouton est cliqué, cela montre un comportement ciblé mais ici, il ne fait rien de tel, cela fonctionne comme une étiquette.


Ces deux boutons fonctionnent de la même manière que les travaux précédents.


Je suis désolé, je ne peux pas reproduire ce problème avec le code fourni.


d'accord! Tout d'abord merci de m'avoir accordé votre temps précieux. Mais maintenant, je modifie mon message avec tout mon code. Si vous avez envie de corriger cela, ce serait un plaisir pour moi.


continuons cette discussion dans le chat .


3 Réponses :


0
votes

ouais mec, j'ai aussi eu le problème en suivant un cours de coursera. Ce n'est pas le problème avec jquery. Définissez le "z-index" de "carouselButton" sur 2 ou plus et cela devrait fonctionner


0 commentaires

0
votes

Après avoir parcouru votre script, je découvre que vous désactivez un détail important dans votre code, à savoir que vous n'avez pas ajouté pause: false après l'intervalle: 2000. donc votre code de script aurait dû être présenté de cette façon.

    <script>
        $('#mycarousel').carousel({
            interval: 1500,
            pause: false
        });
        $('#carousel-pause').click(function() {
            $('#mycarousel').carousel('pause');
        });
        $('#carousel-play').click(function() {
            $('#mycarousel').carousel('cycle');
        });
    </script>

ou vous pouvez utiliser ceci

    <script>
        $(document).ready(function(){
            $("#mycarousel").carousel( { interval: 2000, pause: false } );
            $("#carousel-pause").click(function(){
                $("#mycarousel").carousel('pause');
            });
            $("#carousel-play").click(function(){
                $("#mycarousel").carousel('cycle');
            });
        });
    </script>

de l'une ou l'autre des manières dont votre code sera fonctionne correctement lorsque vous cliquez sur le bouton de pause ou de lecture


0 commentaires

0
votes

Ouais ... définissez z-index: 1; sur carouselButton ... cela fonctionnera certainement.


0 commentaires