蚂蚁设计固定侧菜单问题

时间:2020-02-19 09:38:45

标签: css reactjs antd ant-design-pro

我尝试将一页内容添加到固定的左侧菜单并滚动内容,我尝试使用position:fixed样式。但无法正常工作,任何人都知道如何正确执行此操作,stack blitz here

我的代码在这里

import React, { Component } from 'react';
import { render } from 'react-dom';
import 'antd/dist/antd.css';

import { Layout, Menu, Breadcrumb, Icon } from 'antd';

const { SubMenu } = Menu;
const { Header, Content, Footer, Sider } = Layout;
import './style.css';

class App extends Component {
  constructor() {
    super();
    this.state = {
      name: 'React'
    };
  }

  render() {
    return (
        <Layout>
    <Header className="header">
      <div className="logo" />
      <Menu
        theme="dark"
        mode="horizontal"
        defaultSelectedKeys={['2']}
        style={{ lineHeight: '64px' }}
      >
        <Menu.Item key="1">nav 1</Menu.Item>
        <Menu.Item key="2">nav 2</Menu.Item>
        <Menu.Item key="3">nav 3</Menu.Item>
      </Menu>
    </Header>
    <Content style={{ padding: '0 50px' }}>
      <Breadcrumb style={{ margin: '16px 0' }}>
        <Breadcrumb.Item>Home</Breadcrumb.Item>
        <Breadcrumb.Item>List</Breadcrumb.Item>
        <Breadcrumb.Item>App</Breadcrumb.Item>
      </Breadcrumb>
      <Layout style={{ padding: '24px 0', background: '#fff' }}>
        <Sider width={200} style={{ background: '#fff' }}>
          <Menu
            mode="inline"
            defaultSelectedKeys={['1']}
            defaultOpenKeys={['sub1']}
            style={{ height: '100%' }}
          >
            <SubMenu
              key="sub1"
              title={
                <span>
                  <Icon type="user" />
                  subnav 1
                </span>
              }
            >
              <Menu.Item key="1">option1</Menu.Item>
              <Menu.Item key="2">option2</Menu.Item>
              <Menu.Item key="3">option3</Menu.Item>
              <Menu.Item key="4">option4</Menu.Item>
            </SubMenu>
            <SubMenu
              key="sub2"
              title={
                <span>
                  <Icon type="laptop" />
                  subnav 2
                </span>
              }
            >
              <Menu.Item key="5">option5</Menu.Item>
              <Menu.Item key="6">option6</Menu.Item>
              <Menu.Item key="7">option7</Menu.Item>
              <Menu.Item key="8">option8</Menu.Item>
            </SubMenu>
            <SubMenu
              key="sub3"
              title={
                <span>
                  <Icon type="notification" />
                  subnav 3
                </span>
              }
            >
              <Menu.Item key="9">option9</Menu.Item>
              <Menu.Item key="10">option10</Menu.Item>
              <Menu.Item key="11">option11</Menu.Item>
              <Menu.Item key="12">option12</Menu.Item>
            </SubMenu>
          </Menu>
        </Sider>
        <Content style={{ padding: '0 24px', minHeight: 280,textAlign: "center" }}>    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                                ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>

    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>

    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>

    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>

    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>

    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>

    ...
                            <br/>
                            Really
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            ...
                            <br/>
                            ...
                            <br/>

                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>
                            ...
                            <br/>


</Content>
      </Layout>
    </Content>
    <Footer style={{ textAlign: 'center' }}>Ant Design ©2018 Created by Ant UED</Footer>
  </Layout>
    );
  }
}

render(<App />, document.getElementById('root'));

1 个答案:

答案 0 :(得分:1)

类似的事情应该起作用。

<Sider 
    width={200} 
    style={{ 
        overflow: 'auto',
        height: '100vh',
        position: 'fixed',
        left: 0,
    }}
>
...
</Sider>

此外,也许您想看看:https://react-sticky-box.codecks.io/