0%

jQuery 筆記 - 下拉收闔選單寫法

drawer
很多拍賣網站會看到 header 選單,點擊項目按鈕後,才會出現子選單,這次來筆記一下。

HTML 架構

1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="dropdownMenu">
<ul>
<li><a href="#">產品一</a></li>
<li><a href="#">產品二</a></li>
<li><a href="#" class="btn jq-clickBtn">請點我</a>
<ul class="dropdownList jq-dropdown">
<li><a href="#">商品一</a></li>
<li><a href="#">商品二</a></li>
<li><a href="#">商品三</a></li>
</ul>
</li>
</ul>
</div>

在第三個 li 中放入子選單,把要控制的地方另外加入 className,讓 CSS 與 jQuery 分開管理,因為一開始 dropdownList 要隱藏,所以 CSS 要設定 display:none;,並增加一個 .active ,等等要透過 jQuery 來動態增加 class。

1
2
3
4
5
6
7
8
9
10
11
12
.dropdownList {
display: none;
li {
display: flex;
justify-content: center;
align-items: center;
// flex-direction: column;
}
}
&.active {
display: block;
}

jQuery 行為

綁定按鈕,並且給予 click 事件,點擊按鈕時動態增加 .active,並且使 dropdownList 產生收合功能。

1
2
3
4
5
6
7
$(function () {
$('.jq-clickBtn').click(function (e) {
e.preventDefault();
$('.jq-clickBtn').toggleClass('active');
$('.jq-dropdown').slideToggle();
});
});