返回課程

建立滑動選單

重要性:5

建立一個點選時會開啟/關閉的選單

附註:原始文件的 HTML/CSS 需要修改。

開啟一個沙盒來執行任務。

HTML/CSS

首先讓我們建立 HTML/CSS。

選單是網頁上一個獨立的圖形元件,所以最好將它放入一個單一的 DOM 元素中。

選單項目清單可以佈置成一個清單 ul/li

以下為範例結構

<div class="menu">
  <span class="title">Sweeties (click me)!</span>
  <ul>
    <li>Cake</li>
    <li>Donut</li>
    <li>Honey</li>
  </ul>
</div>

我們使用 <span> 作為標題,因為 <div> 具有內含的 display:block,且會佔用 100% 的水平寬度。

如下所示

<div style="border: solid red 1px" onclick="alert(1)">Sweeties (click me)!</div>

因此,如果我們對其設定 onclick,則它會捕捉文字右方的點擊。

由於 <span> 具有內含的 display: inline,因此它只會佔用剛好容納所有文字的空間

<span style="border: solid red 1px" onclick="alert(1)">Sweeties (click me)!</span>

切換選單

切換選單應變更箭頭並顯示/隱藏選單清單。

所有這些變更都由 CSS 完美處理。在 JavaScript 中,我們應透過新增/移除類別 .open 來標記選單的目前狀態。

沒有它,選單會關閉

.menu ul {
  margin: 0;
  list-style: none;
  padding-left: 20px;
  display: none;
}

.menu .title::before {
  content: '▶ ';
  font-size: 80%;
  color: green;
}

…而使用 .open,箭頭會變更且清單會顯示

.menu.open .title::before {
  content: '▼ ';
}

.menu.open ul {
  display: block;
}

在沙盒中開啟解決方案。