# wx-wow
**Repository Path**: fivecc/wx-wow
## Basic Information
- **Project Name**: wx-wow
- **Description**: 该项目为提供微信小程序一套便捷好用动画执行方案, 通过添加简单的动画类名和一些简单的参数,即可实现想要的动画效果。灵感来源 WOW.js
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2021-03-15
- **Last Updated**: 2025-05-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# wx-wow
该项目为提供微信小程序一套便捷好用动画执行方案, 通过添加简单的动画类名和一些简单的参数,即可实现想要的动画效果。灵感来源 [WOW.js](https://github.com/matthieua/WOW)
wx-wow 需要 调试小程序基础库 `>2.5`
仓库地址: [@Five-great/wx-wow](https://github.com/Five-great/wx-wow)
# 下载
直接通过 `git` 下载 `wx-wow` 源代码,并将 `src` 目录拷贝到自己的项目中
```bash
git clone https://github.com/Five-great/wx-wow.git
```
通过 `npm` 或 `cnpm` 下载
```bash
npm install --save wx-wow
```
下载后目录结构为
```javscript
+-- src
| |-- wxWOW.js
| |-- wxWOW.wxs
| |-- wxWOW.wxss
| |-- wxWOW.min.js
| |-- wxWOW.min.wxs
| |-- wxWOW.min.wxss
|-- package-lock.json
|-- package.json
+-- README.md
```
# 使用
将 `src` 目录中所有文件复制到微信小程序目录`utils`中(`wxWOW.js`,`wxWOW.wxss`,`wxWOW.wxss`)
### 1. 在 `app.js` 中引入 `wxWOW.js`
```javascript
Page = require('./utils/wxWOW')
App({
...
})
```
### 2. 在 `app.wxss` 引入`wxWOW.wxss` ( 动效样式来源自 [animate.css(点击查看动效名与效果)](https://animate.style) )
```css
/**app.wxss**/
@import "./utils/wxWOW.wxss";
```
### 3. 在需要的页面引入 `wxWOW.wxs` 并导出模块 命名为 `"wx"` 同时监听绑定 `{{ wxwow }} ` 改变时触发 `WOWChange` 函数 执行动画渲染。
```javascript
...
```
### 4. 在需要加入动效的地方的 `class` 加入 `" {{wx.WOW()}} <动效名称>"`, 例如 `" {{wx.WOW()}} bounceInUp "`, 同时需要给该动效分配一个 `id `具体通过 `{{wx.WOWId()}}` 去自动分配到 `data-wx-wow-id` 上 ,并且确保添加动画的display 属性为 块状 或行块状,不能为行类样式 如下面的例子1。
```html
//例子1:
...
```
#### 额外参数
此外还可以控制动效的一些过程例如:
动效名称: `data-wx-wow-name` (bounceInUp , fadeInLeft,...)
动效延时: `data-wx-wow-delay ` ( 300ms , 0.3s, 4s ...)
动效持续时间:`data-wx-wow-duration` ( 300ms , 0.3s, 4s ...)
距离可视区域多少开始执行动效: `data-wx-wow-offset` (整数) ( 0 , 100, 50 ...)
动效执行次数: `data-wx-wow-iteration` ( 1, 5, infinite, ...)
```html
...
...
```
## 升阶配置
#### 若需升阶配置 则需改变设置方式,在 `class` 加入 `" {{wx.WOW()}}"` ,同时加入 data-wx-wow-name="`<动效名>`" 同时需要给该动效分配一个 `id `具体通过 `{{wx.WOWId()}}` 去自动分配到 `data-wx-wow-id` 上 ,并且确保添加动画的display 属性为 块状 或行块状,不能为行类样式 如下面的例子2
```html
//例2:
...
```
#### 触发实现离场动效
##### 通过触发 `wx.WOWOut()` 函数,来触发离场动效,需保证 `data-wx-wow-name`有值,默认为 `data-wx-wow-name`中相反的动效名(例如 bounceInUp 相反动效为 bounceOutUp)。触发回调对应逻辑层 `wxWOWTap`(可以执行跳转页面或其他处理)
```html
...
```
```js
Page({
...
wxWOWTap: function(event){
console.log(event)
setTimeout(()=>{
event.target.dataset.idx?wx.navigateTo({url: '/pages/xxx/xxx?idx='+event.target.dataset.idx}):''
},600)
}
...
})
```
##### 可选配置
此外还可以控制动效的一些过程例如:
动效名称: `data-wx-wow-outName` [默认`data-wx-wow-name`取相反动效 ] (bounceOutUp , fadeOutLeft,...)
动效延时: `data-wx-wow-outDelay` [默认与 `data-wx-wow-delay` 相同 ] ( 300ms , 0.3s, 4s ...)
动效持续时间:`data-wx-wow-outDuration` [默认与 `data-wx-wow-duration` 相同 ] ( 300ms , 0.3s, 4s ...)
动效执行次数: `data-wx-wow-outIteration` [默认与 `data-wx-wow-iteration` 相同 ] ( 1, 5, infinite, ...)
#### 设置页面重复动效 (进入页面重新刷新执行动效)
```js
Page({
data: {
wxwowConfig: {
repeat: true //是否重复刷新开启动画 默认 true , 当设为 false,则该页面未销毁前,只会执行一次动效
}
}
})
```
#### 其他设置
###### 设置某单个动效,重复执行(优先级高于设置页面重复动效),给 类名 `class` 加入 `wxwow-repeat`
```html
...
```
###### 设置某单个动效,仅仅执行一次(优先级高于设置页面重复动效),给 类名 `class` 加入 `wxwow-once`
```html
...
```
## Demo
[点击查看代码片段](https://developers.weixin.qq.com/s/llE4M7m67rnC)
## 应用实列
## 支持
## 欢迎 点赞 ,Fork , 提 Issues
qq邮箱: fivecc@qq.com