You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
4.0 KiB
79 lines
4.0 KiB
# rc-drawer
|
|
|
|
[![NPM version][npm-image]][npm-url] [](https://github.com/umijs/dumi) [![build status][github-actions-image]][github-actions-url] [](https://codecov.io/gh/react-component/drawer) [![node version][node-image]][node-url] [![npm download][download-image]][download-url]
|
|
|
|
[npm-image]: http://img.shields.io/npm/v/rc-drawer.svg?style=flat-square
|
|
[npm-url]: http://npmjs.org/package/rc-drawer
|
|
[github-actions-image]: https://github.com/react-component/drawer/workflows/CI/badge.svg
|
|
[github-actions-url]: https://github.com/react-component/drawer/actions
|
|
[node-image]: https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square
|
|
[node-url]: http://nodejs.org/download/
|
|
[download-image]: https://img.shields.io/npm/dm/rc-drawer.svg?style=flat-square
|
|
[download-url]: https://npmjs.org/package/rc-drawer
|
|
|
|
## Example
|
|
|
|
https://drawer-react-component.vercel.app/
|
|
|
|
## Usage
|
|
|
|
```js
|
|
import Drawer from 'rc-drawer';
|
|
import React from 'react';
|
|
import ReactDom from 'react-dom';
|
|
|
|
ReactDom.render(
|
|
<Drawer>
|
|
{menu children}
|
|
</Drawer>
|
|
, mountNode);
|
|
```
|
|
|
|
## Install
|
|
|
|
[](https://npmjs.org/package/rc-drawer)
|
|
|
|
## Browser Support
|
|
|
|
| |  |  |  | |
|
|
| --- | --- | --- | --- | --- |
|
|
| IE 10+ ✔ | Chrome 31.0+ ✔ | Firefox 31.0+ ✔ | Opera 30.0+ ✔ | Safari 7.0+ ✔ |
|
|
|
|
## API
|
|
|
|
| props | type | default | description |
|
|
|------------|----------------|---------|----------------|
|
|
| className | string | null | - |
|
|
| prefixCls | string | 'drawer' | prefix class |
|
|
| wrapperClassName | string | null | wrapper class name |
|
|
| width | string \| number | null | drawer content wrapper width, drawer level transition width |
|
|
| height | string \| number | null | drawer content wrapper height, drawer level transition height |
|
|
| open | boolean | false | open or close menu |
|
|
| defaultOpen | boolean | false | default open menu |
|
|
| handler | boolean \| ReactElement | true | true or false or ReactElement, default: `<divclassName="drawer-handle"><i className="drawer-handle-icon" /></div>`; |
|
|
| placement | string | `left` | `left` `top` `right` `bottom` |
|
|
| level | string \| array | `all` | With the drawer level element. `all`/ null / className / id / tagName / array |
|
|
| levelMove | number \| array \| func | null |level move value. default is drawer width |
|
|
| duration | string | `.3s` | level animation duration |
|
|
| ease | string | `cubic-bezier(0.78, 0.14, 0.15, 0.86)` | level animation timing function |
|
|
| getContainer | string \| func \| HTMLElement | `body` | Return the mount node for Drawer. if is `null` use React.creactElement |
|
|
| showMask | boolean | true | mask is show |
|
|
| maskClosable | boolean | true | Clicking on the mask (area outside the Drawer) to close the Drawer or not. |
|
|
| maskStyle | CSSProperties | null | mask style |
|
|
| onChange | func | null | change callback(open) |
|
|
| afterVisibleChange | func | null | transition end callback(open) |
|
|
| onClose | func | null | close click function |
|
|
| onHandleClick | func | nul | handle icon click function |
|
|
| keyboard | Boolean | true | Whether support press esc to close |
|
|
| contentWrapperStyle | CSSProperties | null | content wrapper style |
|
|
| autoFocus | Boolean | true | Whether focusing on the drawer after it opened |
|
|
|
|
> 2.0 Rename `onMaskClick` -> `onClose`, add `maskClosable`.
|
|
|
|
## Development
|
|
|
|
```
|
|
npm install
|
|
npm start
|
|
```
|