cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk membuat animasi lebar togol jquery berhenti di tengah jalan untuk menutup semula?

Mungkin soalan ini mengelirukan, tetapi saya berikan contoh, apabila saya klik pada butang yang menukar lebar, div terus bernyawa selepas menekan butang, yang tidak kelihatan hebat. Apa yang saya mahu ialah div berhenti separuh jalan dan pergi ke arah lain, dan tidak melengkapkan animasi sedia ada apabila butang ditekan sekali lagi.

$(document).ready(function() {
  $('.menuToggle').click(function() {
    $(".menuContainer").animate({
      width: 'toggle'
    });
  });
});
.menuContainer {
  height: 100px;
  width: 50px;
  float: left;
  position: relative;
  background-color: black;
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="menuContainer">
  <!-- Menu Items -->
</div>
<h4 class="menuToggle">Show Menu</h4>

Ini biola supaya anda boleh faham apa yang saya cakapkan. Cuba hantarkan spam pada butang "Tunjukkan Menu".

https://jsfiddle.net/x14usdga/5/

Terima kasih banyak atas bantuan anda, saya telah mencari di mana-mana tetapi sepertinya tidak dapat mencari sebarang maklumat tentang masalah saya.

P粉238355860P粉238355860271 hari yang lalu380

membalas semua(2)saya akan balas

  • P粉567112391

    P粉5671123912024-03-20 16:50:32

    Anda boleh menyemak sama ada elemen tidak dianimasikan sebelum melakukan animasi

    https://api.jquery.com/is/
    https://api.jquery.com/animated-selector/

    $(document).ready(function(){
      $('.menuToggle').click(function(){
        if( $('.menuContainer').is(':animated') ) { return false; }
        $(".menuContainer").animate({width: 'toggle'});
      }); 
    });
    .menuContainer{
        height: 100vh;
        width: 15vw;
        float: left;
        position: relative;
        background-color: black;
        display: none;
    }
    sssccc
    
        

    balas
    0
  • P粉701491897

    P粉7014918972024-03-20 14:09:48

    Anda boleh menggunakan kaedah .stop(). Cuba ini

    $(document).ready(function() {
      $('.menuToggle').click(function() {
        $(".menuContainer").stop().animate({
          width: 'toggle'
        });
      });
    });
    .menuContainer {
      height: 100px;
      width: 50px;
      float: left;
      position: relative;
      background-color: black;
      display: none;
    }
    sssccc
    
    

    balas
    0
  • Batalbalas