# vue-slideout
**Repository Path**: kulou54/vue-slideout
## Basic Information
- **Project Name**: vue-slideout
- **Description**: Vue2.x 的侧滑组件。支持从四个不同的方向滑出,支持自定义样式,支持关闭事件(可以阻止关闭/异步支持),支持 ESC 键快捷关闭
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://hyjiacan.github.io/vue-slideout/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 15
- **Created**: 2019-07-07
- **Last Updated**: 2024-06-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SlideOut
一个 Vue.js 2.0 的侧滑组件
### 依赖
- Vue.js 2.x
- Less
- v-scroll-lock
## 安装
```bash
npm i @hyjiacan/vue-slideout
```
或
```bash
yarn add @hyjiacan/vue-slideout
```
可以通过以下方式获取最新代码:
```bash
git clone https://github.com/hyjiacan/vue-slideout.git
```
或 [下载归档](https://github.com/hyjiacan/vue-slideout/archive/master.zip)
## 使用
### 全局引用 (推荐)
*main.js*
```javascript
import Vue from 'vue'
import SlideOut from '@hyjiacan/vue-slideout'
import from '@hyjiacan/vue-slideout/lib/slideout.css'
// 引入 SlideOut 组件,并设置组件默认值
Vue.use(SlideOut, {
// 在此处填写默认的属性值
})
```
### 组件内引用
*Foobar.vue*
```html
这里是内容
```
更多的用法,参见 https://hyjiacan.github.io/vue-slideout/
## 属性
|名称|类型|必填|描述|默认值|
|---|---|---|---|---|
|size|String/Number|否|显示的尺寸, 可以使用单位`px`和`%`|400px|
|zIndex|Number|否|z-index 值|1997|
|visible|Boolean|是|是否可见,可使用 `.sync` 修饰|false|
|title|String|否|标题文本,如果此属性为空,`slot=header` 也为空,
那么头部会被隐藏|-|
|closeOnMaskClick|Boolean|否|是否在点击遮罩层时关闭|true|
|customClass|String|否|自定义的样式类名称|-|
|showMask|Boolean|否|遮罩层是否可见|true|
|showClose|Boolean|否|是否显示关闭按钮|true|
|maskColor|String|否|遮罩层的颜色|rgba(0, 0, 0, 0.5)|
|dock|String|否|停靠位置,可选值为: `top`, `right`, `bottom`, `left`|right|
|appendTo|String/HTMLElement|否|设置父元素,可使用字符串(选择器)和
对象(DOM对象)|null|
|disableAnimation|Boolean|否|是否禁用显示和隐藏的动画|false|
|allowResize|Boolean|否|是否允许鼠标挺拖动改变尺寸|false|
|minSize|Number|否|拖动大小的最小值限制,单位为 `px`|60|
|maxSize|Number|否|拖动大小的最大值限制,单位为 `px`, 设置为 `0` 表示不限制|0|
|ignoreEsc|Boolean|否|是否忽略 `Esc` 键,设置为`false`或保持默认值时,按下`Esc`不会关闭|false|
|lockScroll|Boolean|否|是否锁定页面(仅影响`body`元素)的滚动(slide内可正常滚动)|false|
|fullscreen|Boolean|否|是否全屏显示(此时会禁用拖动改变尺寸功能),可使用 `.sync` 修饰(此时在关闭后会退出全屏)|false|
> 注意:在未设置`appendTo`时,Slide组件会以`position: fixed`的方式显示,并且锁定`body`滚动
## 插槽
|名称|作用域|描述|
|---|---|---|
|header|`{title}`|头部内容,使用时会占据整个头部,此时属性`title`会无效,同时也不会显示关闭按钮
使用`slot-scope="{ title }"`可以取到属性`title`的值|
|btn|-|头部的扩展部分,放在**关闭按钮**左侧|
|default|-|内容部分|
|footer|-|底部内容|
## 事件
|名称|参数|描述|
|---|---|---|
|open|-|在打开后立即调用|
|close|e: `{close: Boolean, wait: Boolean}`|在关闭前调用,在回调函数内,
设置`e.wait=true` 可以阻止关闭,
设置 `e.close=true` 可以继续关闭(支持异步关闭)|
|closed|-|在slide真正关闭后调用,它在事件`close`后才会被触发|
## 开发
```bash
yarn
# 启动服务器
yarn serve
# 构建仓库
yarn release
```