用React刻自己的投资Dashboard Day25 - 制作汉堡选单

tags: 2021铁人赛 React

安装styled-components套件

在专案资料夹内一行安装就完成了。

npm install --save styled-components

制作汉堡选单图示

这边是参考网路上的写法,因为连图示都写实用程序码写在是蛮酷的,就把它复制下来了。

src\UI\Burger\Burger.js

import React from 'react';
import { StyledBurger } from './Burger.styled';

const Burger = () => {
  return (
    <StyledBurger>
      <div />
      <div />
      <div />
    </StyledBurger>
  )
}

export default Burger;

src\UI\Burger\Burger.styled.js

import styled from 'styled-components';

export const StyledBurger = styled.button`
  position: absolute;
  top: 1rem;
  right: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  width: 1.5rem;
  height: 2rem;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  
  div {
    width: 2rem;
    height: 0.25rem;
    background: #787676;
    border-radius: 10px;
    position: relative;
    transform-origin: 1px;
  }

  @media screen and (min-width: 576px) {
    div {
      visibility: hidden;
    }
  }
`;

制作选单列表

点开汉堡选单的三条线图示之後,会跳出选单列表,这边就来制作选单列表。
src\UI\Menu\Menu.js

import React from 'react';
import { StyledMenu } from './Menu.styled';

const Menu = () => {
  return (
    <StyledMenu>
      <a href="/">
        首页
      </a>
      <a href="/macroeconomics">
        总体经济
      </a>
    </StyledMenu>
  )
}

export default Menu;

src\UI\Menu\Menu.styled.js

import styled from 'styled-components';

export const StyledMenu = styled.nav`
  visibility: hidden;
  width: 30%;
  box-shadow: 0px 2px 5px gray;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #89CCE0;
  text-align: left;
  padding: 0.5rem;
  position: absolute;
  top: 61px;
  right: 0;

  a {
    font-size: 1rem;
    padding-bottom: 0.5rem;
    font-weight: bold;
    color: #787676;
    text-decoration: none;
  }
`;

将汉堡选单与选单列表插入导览列

制作好上述两个元件之後,就可以把它放入Navbar罗!
src\components\Navbar\Navbar.js

import React, { useState } from 'react';
import styles from './Navbar.module.css';
import Navbar from 'react-bootstrap/Navbar';
import svgIcon from './navbaricon.svg';
import Nav from 'react-bootstrap/Nav';
// 新增元件
import Burger from '../../UI/Burger/Burger';
import Menu from '../../UI/Menu/Menu';

const Topbar = (props) => {
  return (
    <Navbar className={styles.navbar}>
      ...
      <Burger />
      <Menu />
    </Navbar>
  );
};

export default Topbar;

加上选单列表的开启与关闭功能

汉堡选单的功能通常就是点选三条线的图示可以做选单列表的开启与关闭,这个功能在react的实作,可以透过状态的改变来达成这个功能,因此可想而知会用到useState hook。

因为程序码较琐碎一些,透过GitHub程序码看会容易一些。

小结

这篇很快速地做了导览列的选单功能,主要是因为当使用手机观看时,就可以收和导览列的按钮到汉堡选单内,比较不会有跑版问题。


<<:  [DAY26]资料库的CRUD

>>:  [Java Day29] 6.6. 抽象类别

D-28-dotnet cli ? build ? run

产生了专案之後 昨天经由大头的代领小光终於完成建置环境,并且也产生了他人生中第一个专案,虽然最後在H...

Day29百变红酱-义大利肉酱

义大利肉酱是平常雪伦冰箱常备的料理,一次多做一点分装冷冻起来,想吃就可以随时拿出来吃,除了义大利面,...

TypeScript 能手养成之旅 Day 3 判断资料型别

前言 今天正式进入 TypeScript 内容及使用,我们首先会接触的就是 型别系统 。 型别系统设...

Day 7 - 用 canvas 复刻 小画家 绘制矩形与圆角矩形

绘制矩形 核心 先来学习绘制矩形的方法 strokeRect 使用当前的绘画样式,描绘一个起点在 (...

懂得市场定位,就能立足市场—南北杂货的经营智慧

传统产业里面,有一种什麽都卖,什麽都不奇怪的商店,叫做南北杂货,不论是乾货、调味料、面食、蛋品、香料...