# vue-share-element
**Repository Path**: tommyrunner/vue-share-element
## Basic Information
- **Project Name**: vue-share-element
- **Description**: vue 共享元素切换界面
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2022-05-06
- **Last Updated**: 2023-12-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Vue, JavaScript, npm, router跳转动画
## README
# vue-share-element(已兼容Vue3 + ts)
## 更新
+ 优化父容器滚动情况
+ 优化vue组件嵌套问题
## 简介
+ 实例

+ 效果

> + vue-share-element基于vue的单界面路由**动画跳转**插件。
>
> + 使用 **共享元素的方式** 给路由跳转增加动画。
## 安装
```shell
npm install vue-share-element
```
## 一对一情况
+ A页面 (pageA)
```vue
```
+ B页面 (pageB)
```vue
```
> 注意:
>
> 1. 一对一代表:push界面只包含**一个子元素**
>
> 2. **接收界面**的元素无论什么情况下,**只能含一个**
## 多对一情况
+ A页面 (pageA)
```vue
{{ item }}
```
+ B页面 (pageB)
```vue
返回
```
> 注意:
>
> 1. 接收界面是**异步渲染**的情况下,需要提前定型(**提前设置好元素宽高**)
> 2. 注意 **share** 是唯一的,相当于v-key,进行**记录触发共享元素key**
> 3. *如果在数据多出现**滚动条情况下**,滚动条一定在父容器上,如果是**body**或**更上级挤出来的滚动条**,位置会计算问题 (**解决**:限制**VueShareElementVue**的宽高,让滚动条在**VueShareElementVue**上,**VueShareElementVue**会**自动计算位置**)。
>
> ```css
> {
> width: 100px;
> height: 300px;
> overflow: auto;
> }
> ```
>
> 4. 同一个界面中不能出现**多个共享元素组件**。
> 5. 暂时共享元素与目标元素只有**位置与宽高的过度**,其他动画还需开发。
## props属性
+ delay:设置动画延迟时间(默认:0.62秒)
+ zIndex: 设置动画层级(默认:2001)
+ 子元素属性:
+ share: 唯一标识
## emit函数
+ setHooks(end:Function):添加生命周期
## 附
+ 1.x.x:兼容vue2,文档根据版本README
+ 2.x.x:兼容vue3,文档根据版本README
+ 3.x.x:兼容vue3+ts