jQuery點擊按鈕實現收縮隱藏功能

一、實現的功能

點擊title區域的按鈕,收縮/隱藏相應的內容區域,並改變按鈕中的文案。

二、實現方法

採用jQuery中的slideToggle() 方法

定義和用法

slideToggle() 方法通過使用滑動效果(高度變化)來切換元素的可見狀態。

如果被選元素是可見的,則隱藏這些元素,如果被選元素是隱藏的,則顯示這些元素。

語法

$(selector).slideToggle(speed,callback)
參數 描述
speed

可選。規定元素從隱藏到可見的速度(或者相反)。默認爲 "normal"。

可能的值:

  • 毫秒 (比如 1500)
  • "slow"
  • "normal"
  • "fast"

在設置速度的情況下,元素在切換的過程中,會逐漸地改變其高度(這樣會創造滑動效果)。

callback

可選。toggle 函數執行完之後,要執行的函數。

如需學習更多有關 callback 的內容,請訪問我們的 jQuery Callback 這一章。

除非設置了 speed 參數,否則不能設置該參數。

提示和註釋

提示:如果元素已經隱藏,則該效果不產生任何變化,除非規定了 callback 函數。

三、代碼

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .box{width: 300px; border-bottom: 1px solid #ccc; background: skyblue;}
    .box:last-child{border: none;}
    .box h3{margin: 0; padding: 10px 0; overflow: hidden; zoom: 1;}
    .box h3 button{float: right;}
    .box .content{background: lightgreen;}
  </style>
</head>
<body>
  <div class="box">
    <h3>title1 <button>[收起]</button></h3>
    <div class="content">
      <div>內容1-1</div>
      <div>內容1-2</div>
      <div>內容1-3</div>
    </div>
  </div>

  <div class="box">
    <h3>title2 <button>[收起]</button></h3>
    <div class="content">
      <div>內容2-1</div>
      <div>內容2-2</div>
      <div>內容2-3</div>
    </div>
  </div>

  <div class="box">
    <h3>title3 <button>[收起]</button></h3>
    <div class="content">
      <div>內容3-1</div>
      <div>內容3-2</div>
      <div>內容3-3</div>
    </div>
  </div>

  <script type="text/javascript" src="http://daipianpian.com/common/js/jquery-3.1.1.min.js"></script>
  </head>
  <script type="text/javascript">
  // 收縮隱藏效果
  $(document).ready(function(){
      var buttonGroup = $('.box > h3 > button');
      buttonGroup.each(function() {
          $(this).click(function(){
              $(this).parent('h3').next().slideToggle();
              var btnText = $(this).text();
              if(btnText == '[展開]') {
                  $(this).text('[收起]');
              } else {
                  $(this).text('[展開]');
              }
          });
      });
  });
  </script>
</body>
</html>

本人前端程序員,長期混跡於各種前端開發中,現在專門爲前端熱愛者建了個微信羣,和大家一起分享自己在工作、學習中遇到的技術知識或問題,還有各種資料和課程,各位感興趣的可以加入哦~

微信前端交流羣

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章