亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有 Javascript 功能的引導輪播播放和暫停

帶有 Javascript 功能的引導輪播播放和暫停

肥皂起泡泡 2022-11-11 16:07:55
我在引導程序中的輪播類中遇到問題。我已經定義了一個默認為暫停按鈕的按鈕,然后我在該按鈕上使用 javascript 函數來控制輪播,就像單擊時一樣,圖標應該變為播放并且輪播應該停止循環,但是 .click(function)單擊按鈕時不起作用,而是在我將鼠標放在按鈕上時暫停輪播。請幫我解決這個問題。  $(文檔).ready(函數(){            $("#mycarousel").carousel( { 間隔:2000 } );            $("#carouselButton").click(function()            {                if ($("#carouselButton").children("span").hasClass('fa-pause'))                {                    $("#mycarousel").carousel("暫停");                    $("#carouselButton").children("span").removeClass('fa-pause');                    $("#carouselButton").children("span").addClass('fa-play');                }                else if ($("#carouselButton").children("span").hasClass('fa-play'))                {                    $("#mycarousel").carousel("cycle");                    $("#carouselButton").children("span").removeClass('fa-play');                    $("#carouselButton").children("span").addClass('fa-pause');                                    }            });        });
查看完整描述

4 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

好問題。我也無法{ pause:null }按照你的意愿上班。但是更多地挖掘這個,我得到了一個可行的解決方案......

  • 關鍵是在div上切換data-interval屬性carousel

  • 但這并沒有啟動循環,觸發啟動......我們要么必須手動懸停和懸停......或者自動化它(我們做了)

  • 但是由于通過 jQuery 添加/刪除這個屬性有一些滯后,我們(hackish-ly)添加一個setTimeout來處理這個

下面的工作片段

$(document).ready(function() {


  $('#playPause').click(function() {

    if ($("#myCarousel").attr("data-interval")) {

      $("#myCarousel").removeAttr("data-interval");

      $(".carousel-item>.active").removeAttr("active");

      setTimeout(function() {

        $(".carousel-control-next").trigger('click');

        $(".carousel-inner").trigger('mouseenter');

        $("#myCarousel").trigger('mouseenter');

      }, 500);

    } else {

      $("#myCarousel").attr("data-interval", "500");

      setTimeout(function() {

        $(".carousel-control-next").trigger('click');

        $(".carousel-inner").trigger('mouseenter');

        $("#myCarousel").trigger('mouseenter');

        $("#myCarousel").trigger('mouseleave');

      }, 1000);

    }

  });


  // Enable Carousel Indicators

  $(".item1").click(function() {

    $("#myCarousel").carousel(0);

  });

  $(".item2").click(function() {

    $("#myCarousel").carousel(1);

  });

  $(".item3").click(function() {

    $("#myCarousel").carousel(2);

  });


  // Enable Carousel Controls

  $(".carousel-control-prev").click(function() {

    $("#myCarousel").carousel("prev");

  });

  $(".carousel-control-next").click(function() {

    $("#myCarousel").carousel("next");

  });

});

/* Make the image fully responsive */


.carousel-inner img {

  width: 100%;

  height: 100%;

}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>


<div class="container mt-3">

  <button type='button' id='playPause'>Play / Pause</button>


  <!-- The carousel -->

  <div id="myCarousel" class="carousel slide mt-4">


    <!-- Indicators -->

    <ul class="carousel-indicators">

      <li class="item1 active"></li>

      <li class="item2"></li>

      <li class="item3"></li>

    </ul>


    <!-- The slideshow -->

    <div class="carousel-inner">

      <div class="carousel-item active">

        <img src="https://www.w3schools.com/bootstrap4/la.jpg" alt="Los Angeles" width="1100" height="500">

      </div>

      <div class="carousel-item">

        <img src="https://www.w3schools.com/bootstrap4/chicago.jpg" alt="Chicago" width="1100" height="500">

      </div>

      <div class="carousel-item">

        <img src="https://www.w3schools.com/bootstrap4/ny.jpg" alt="New York" width="1100" height="500">

      </div>

    </div>


    <!-- Left and right controls -->

    <a class="carousel-control-prev" href="#myCarousel">

      <span class="carousel-control-prev-icon"></span>

    </a>

    <a class="carousel-control-next" href="#myCarousel">

      <span class="carousel-control-next-icon"></span>

    </a>

  </div>

</div>


查看完整回答
反對 回復 2022-11-11
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

我相信您留下了具有相同 ID 的未注釋 div:

<div class="btn-group" id="carouselButton">

那么具有相同 id 的按鈕將不起作用:

<button class="btn btn-danger btn-sm" id="carouselButton">

我有同樣的問題。代碼來自Coursera,前端 Web UI 框架和工具:Bootstrap 4 Week 4,練習(說明):更多 Bootstrap 和 JQuery


查看完整回答
反對 回復 2022-11-11
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

下面的答案效果很好,并且在 JavaScript 中具有不同的口味


function buttonFlip() {   

  var parentButton = document.getElementById("carouselButton");

  var childSpan = document.getElementById("carouselButton_span");

  if (parentButton.contains(childSpan) && childSpan.classList.contains("fa-pause")) {

      $("#mycarousel").carousel('pause');

      childSpan.classList.remove("fa-pause");

      childSpan.classList.add("fa-play");

  }

  else {

      $("#mycarousel").carousel('cycle');

      childSpan.classList.remove("fa-play");

      childSpan.classList.add("fa-pause");

  }

}


查看完整回答
反對 回復 2022-11-11
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

如果這是來自 coursera 的引導課程第 4 課,我遇到了同樣的問題。


轉到這部分并在我的情況下更改 ID,我將 carousel-style 作為 id。然后轉到樣式表并將#carouselButton 更改為您在btn-group 中命名的id。


它應該在那之后工作。


PS老師不給你解釋還要你把播放圖標改成“fas fa play”作為班級


它應該看起來像這樣。


div class="btn-group" id="carousel-style">

   <button class="btn btn-light btn-sm" id="carouselButton">

        <span class="fa fa-pause"></span>

    </button>

 </div>

Javascript 應如下所示:


<script>

$(document).ready(function() {

    $('#mycarousel').carousel({ interval: 2000 });

    $("#carouselButton").click(function(){

            if ($("#carouselButton").children("span").hasClass('fa fa-pause')) {

                $("#mycarousel").carousel('pause');

                $("#carouselButton").children("span").removeClass('fa fa-pause');

                $("#carouselButton").children("span").addClass('fas fa-play');

            }

            else if ($("#carouselButton").children("span").hasClass('fas fa-play')){

                $("#mycarousel").carousel('cycle');

                $("#carouselButton").children("span").removeClass('fas fa-play');

                $("#carouselButton").children("span").addClass('fa fa-pause');                    

            }

        });

}); </script>


查看完整回答
反對 回復 2022-11-11
  • 4 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號