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

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

平滑寬度變化的動畫

平滑寬度變化的動畫

qq_遁去的一_1 2023-08-05 21:07:54
我有 div,一旦單擊文本從Category我下面的列表更改為display: none,單擊會將其觸發為display: block。我讓那部分工作了,但我不知道如何進行過渡,以便寬度會平滑拉伸,而不是一次全部拉伸。  $(document).ready(function(){    $( '#cat' ).click(function() {      if($('#cat').hasClass('open')){          $('#cat').removeClass('open');      }      else{          $('#cat').addClass('open');      }    });  });.categories #cat{    z-index: 10;    border: 1px solid black;    padding: 10px 70px;    background-color: black;    color: white;    cursor: pointer;    outline: none;    display: inline-block;    transition: all 300ms linear;}.list{  display: none;  list-style: none;  padding: 0;  margin-top: 0 !important;  margin-bottom: 0 !important;}.list li{  display: inline-block;  margin: 0 5px;}.open .list{  display: block;}.open span{  display: none;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div class="categories">      <br/>      <h1>New Collection</h1>      <br/>        <div id="cat">          <span>Categories</span>          <ul class="list">            <li>test</li>            <li>test</li>            <li>test</li>            <li>test</li>            <li>test</li>          </ul>        </div>    </div>我嘗試過添加transition: all 300ms ease-in-out和/或linear,但沒有成功。也嘗試animate()在 jquery 中使用,并且css().如何平滑地顯示元素寬度變化?
查看完整描述

1 回答

?
BIG陽

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

AFAIK,當他打開類且沒有類時,你需要設置 div 的寬度,例如:


.categories #cat {

    // all your setup

    width: 20vw;

}

.categories #cat.open {

   width: 50vw;

   white-space: nowrap;

 }

并且您的轉換應該可以正常工作,其中空白在這里很重要,因為當您刪除它時, ul 將打印,您會看到奇怪的行為


更新


  $(document).ready(function(){

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

      if($('#cat').hasClass('open')){

          $('#cat').removeClass('open');

      }

      else{

          $('#cat').addClass('open');

      }

    });

  });

.categories #cat{

    z-index: 10;

    border: 1px solid black;

    padding: 10px 70px;

    background-color: black;

    color: white;

    cursor: pointer;

    outline: none;

    width:20vw;

    display: inline-block;

    transition: all 300ms linear;

}

.categories #cat.open {

 width: 50vw;

 white-space: nowrap;

}

.list{

  display: none;

  list-style: none;

  padding: 0;

  margin-top: 0 !important;

  margin-bottom: 0 !important;

}

.list li{

  display: inline-block;

  margin: 0 5px;

}

.open .list{

  display: block;

}

.open span{

  display: none;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="categories">

      <br/>

      <h1>New Collection</h1>

      <br/>

        <div id="cat">

          <span>Categories</span>

          <ul class="list">

            <li>test</li>

            <li>test</li>

            <li>test</li>

            <li>test</li>

            <li>test</li>

          </ul>

        </div>

    </div>


查看完整回答
反對 回復 2023-08-05
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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