整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML移動端側滑菜單功能

          在的移動端頁面中,很多網站都用到了側邊切換菜單欄功能,針對于該功能, 利用CSS3的知識,寫了一個實現側滑的效果。

          效果展示如下:

          HTML:首先寫好側邊的布局。然后不是側邊的內容塊最好用一個內容塊包圍住。

          CSS樣式

          給側邊菜單定位,起始位置為left:-50%,當點擊菜單的展開按鈕,側邊菜單就加上open類目,讓left:值為0,即展開切換。同理。main也一樣。

          JQ代碼

          當點擊菜單展開按鈕 定義類名為 f-lei,側邊菜單切換添加刪除類open, 主內容切換添加刪除類show。當側邊展開時,點擊展開的剩余背景能收縮展開的菜單欄。

          果你曾經在瀏覽網頁時看到三條線堆疊在一起,那么你就遇到了漢堡菜單。它是移動和響應式網頁設計中使用的一種流行設計元素,用于創建干凈、簡約的界面。

          單擊時,這個小菜單會從屏幕的任一側滑出,顯示導航項或選項列表。當菜單打開時,漢堡菜單也會變成“X”或其他形狀。

          在這篇文章中,我們將向您展示如何在 CSS 中創建不同的漢堡菜單動畫。讓我們開始吧!

          創建漢堡菜單

          要創建漢堡菜單,我們首先需要創建 HTML 。由一個按鈕元素和三個嵌套的 div 元素組成,每個元素代表漢堡圖標的一行。

          <button class="hamburger">
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
          </button>
          

          接下來,我們將為元素添加一些基本樣式。我們將從按鈕元素中刪除任何默認樣式,包括背景和邊框顏色。

          .hamburger {
              background: transparent;
              border: transparent;
              cursor: pointer;
              padding: 0;
          }
          

          然后,對于每個線元素,我們將設置背景顏色、高度、寬度和每個直線之間的間距。

          .hamburger__line {
              background: rgb(203 213 225);
              margin: 0.25rem 0;
              height: 0.25rem;
              width: 2rem;
          }
          

          X

          是時候使用 CSS 創建一個很酷的漢堡菜單動畫了。當用戶將鼠標懸停在按鈕上時,我們希望線條轉換為“X”形。

          為了實現這一點,我們將使用 :hover 偽類和 nth-child 選擇器來訪問每一行。我們將使用 translate() 和 rotate() 函數將線條轉換為 X 形狀。

          第一條線將在 y 軸上向下移動并旋轉 45 度以創建一條 X 形狀的線。第二行將通過將其不透明度設置為零而消失。最后一條線將在 y 軸上向上移動,并逆時針方向旋轉 45 度以完成 X 形狀。我們將通過在 translate() 和 rotate() 函數中使用負值,將其轉換為與第一行相反的方向。

          .hamburger:hover .hamburger__line:nth-child(1) {
              transform: translateY(9px) rotate(45deg);
          }
          
          .hamburger:hover .hamburger__line:nth-child(2) {
              opacity: 0;
          }
          
          .hamburger:hover .hamburger__line:nth-child(3) {
              transform: translateY(-9px) rotate(-45deg);
          }
          

          若要應用轉換,我們將使用該 transition 屬性。動畫將使用 ease-out 計時功能運行 300 毫秒 (0.3s)。該 all 值表示將對樣式更改進行動畫處理,包括 transform 和 opacity 屬性。

          .hamburger__line {
              transition: all 0.3s ease-out;
          }
          

          通過將鼠標懸停在按鈕上來嘗試一下。

          <button class="hamburger">
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
          </button>

          形成減號

          在這種方法中,當按鈕懸停在按鈕上時,我們會將其變成減號。我們將使用與上一種方法相同的轉換,但我們不會旋轉第一行和最后一行。

          相反,我們將在 y 軸上向下移動第一行,直到它到達第二行。第三條線將向上移動,直到到達第一行。然后,第二行將關閉可見性,就像在前面的方法中一樣。

          第一行和最后一行的 `transform` 屬性將與前面的方法相同,只是我們將不再使用該 `rotate()` 函數。

          .hamburger:hover .hamburger__line:nth-child(1) {
              transform: translateY(9px);
          }
          
          .hamburger:hover .hamburger__line:nth-child(2) {
              opacity: 0;
          }
          
          .hamburger:hover .hamburger__line:nth-child(3) {
              transform: translateY(-9px);
          }
          

          看看它是什么樣子的!

          <button class="hamburger">
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
          </button>

          要將按鈕變成減號,我們可以使用另一種效果,將第一行和最后一行水平移出按鈕。我們將使用該 translateX() 函數來指示位置僅在 x 軸上發生了變化。使用 translateX(-100%) ,可以將目標從左向右移出容器,而使用translateX(100%) ,我們可以做相反的事情。

          這兩種轉換都將 opacity 屬性設置為零,使第一行和最后一行不可見。因此,動畫完成后,只有第二行仍然可見。

          .hamburger:hover .hamburger__line:nth-child(1) {
              opacity: 0;
              transform: translateX(-100%);
          }
          
          .hamburger:hover .hamburger__line:nth-child(3) {
              opacity: 0;
              transform: translateX(100%);
          }
          

          看看這如何重現減號。

          <button class="hamburger">
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
          </button>

          形成加號

          在本節中,我們將向您展示另一種類型的轉換。當用戶將鼠標懸停在按鈕上時,它會變成一個加號。為了達到這種效果,我們將第一條線向下移動,直到它與第二條線相遇,從而形成一條水平線。

          然后,我們移動 y 軸上的最后一條線并將其逆時針旋轉 90 度,形成加號的垂直線。最后,我們調整 opacity 第二行,使其在動畫后不可見。

          .hamburger:hover .hamburger__line:nth-child(1) {
              transform: translateY(9px);
          }
          
          .hamburger:hover .hamburger__line:nth-child(2) {
              opacity: 0;
          }
          
          .hamburger:hover .hamburger__line:nth-child(3) {
              transform: translateY(-9px) rotate(-90deg);
          }
          

          查看下面的演示,了解這種方法的實際應用。

          <button class="hamburger">
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
          </button>

          形成箭頭

          為了在按鈕上創建箭頭,我們使用簡單的轉換技術。第一條線旋轉 45 度并沿 x 軸和 y 軸移動,直到它與第二條線的第一個點相交,形成箭頭的頂線。然后,我們減小第一行的寬度,使其看起來更時尚。將相同的轉換應用于最后一行,以創建箭頭的底線。

          如果需要調整箭頭的位置,請隨意調整傳遞給 translate() 函數的值。

          .hamburger:hover .hamburger__line:nth-child(1) {
              transform: translate(-2px, 4px) rotate(-45deg);
              width: 16px;
          }
          
          .hamburger:hover .hamburger__line:nth-child(3) {
              transform: translate(-2px, -4px) rotate(45deg);
              width: 16px;
          }
          

          當您將鼠標懸停在按鈕上時,箭頭的樣子如下:

          <button class="hamburger">
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
              <div class="hamburger__line"></div>
          </button>

          要更改箭頭的方向,請調整 translate() 函數的參數。這將確保第一行和最后一行到達第二行的末尾,并且箭頭將沿相反方向旋轉。

          1),截圖

          (2),文件夾, 線條, 頁面等圖標暫不能提供, 暫截圖

          (3),代碼


          主站蜘蛛池模板: 欧美成人aaa片一区国产精品| 精品一区高潮喷吹在线播放| 无码人妻精品一区二区三区夜夜嗨| 无码精品人妻一区二区三区免费看 | 国产成人精品a视频一区| 日本一区视频在线播放| 国产午夜精品一区理论片飘花 | 国产一区二区视频在线播放| 日本不卡一区二区三区视频| 亚洲一区二区三区免费| 亚洲日韩AV一区二区三区中文| 变态拳头交视频一区二区| 在线视频亚洲一区| 蜜桃AV抽搐高潮一区二区| 中文字幕日韩一区二区三区不卡| 中日av乱码一区二区三区乱码| 麻豆视频一区二区三区| 国产成人精品一区二三区 | 成人区精品一区二区不卡 | 日本一区二区三区在线观看| 国产一区二区三区免费观看在线| 无码AV动漫精品一区二区免费| 在线|一区二区三区四区| 国模无码一区二区三区| 国产乱码精品一区二区三区麻豆 | 亚洲一区二区影院| 亚洲一区在线观看视频| 国产韩国精品一区二区三区久久 | 无码人妻AⅤ一区二区三区水密桃 无码欧精品亚洲日韩一区夜夜嗨 无码毛片一区二区三区中文字幕 无码毛片一区二区三区视频免费播放 | 国产一区二区三区高清在线观看| 国产情侣一区二区三区| 国产精品成人一区二区| 中文字幕一区二区区免| 国产成人无码AV一区二区在线观看| 久久无码一区二区三区少妇 | 亲子乱av一区区三区40岁| 午夜一区二区在线观看| 国产一区二区视频免费| 亚洲成人一区二区| 亚洲AV无码一区二区乱孑伦AS| 亚洲乱码国产一区网址|