当前位置: 首页 > news >正文

Vue - 关于v-wave 波浪动画组件

Vue - 关于v-wave 波浪动画组件

这个动画库可以在标签中添加新的v-wave属性,来让点击标签元素后添加漂亮的波纹效果,并且可以根据父元素自动形成波纹的颜色,也可以自定义波纹颜色,持续时间,透明度,触发的对象等。

一、安装v-wave

npm i v-wave

Vue2引入:

import Vue from 'vue'
import VWave from 'v-wave'Vue.use(VWave)

Vue3引入:

import {createApp} from 'vue'
import VWave from 'v-wave'
import App from './App.vue'createApp(App).use(VWave).mount('#app')

通过CDN

<script src="https://unpkg.com/v-wave"></script>
# With a CDN, `VWave` is made available as a global
Vue.use(VWave)

二、如何使用

要使用该动画组件,只需将v-wave属性添加到需要波纹效果的元素标签中,也可以对象的形式去自定义波纹的效果。

默认演示效果如下:

<template><div class="box" v-wave>Click here</div>
</template><style scoped>
.box {display: grid;place-items: center;width: 200px;height: 200px;padding: 16px;box-shadow: 0px 0px 5px 1px #00000026;cursor: pointer;
}
</style>

在这里插入图片描述

自定义演示效果如下:

<template><divclass="box"v-wave="{color: 'blue',initialOpacity: 0.5,duration: 2,easing: 'ease-in',}">Click here</div>
</template><style scoped>
.box {display: grid;place-items: center;width: 200px;height: 200px;padding: 16px;box-shadow: 0px 0px 5px 1px #00000026;cursor: pointer;
}
</style>

在这里插入图片描述

使用触发器示例(父子元素):

使用v-wave-trigger绑定在需要点击的子元素标签上,可触发父元素v-wave的动画效果。

<template><label v-wave class="text-input"><input type="text" placeholder="Search" /><imgv-wave-triggersrc="https://justintaddei.github.io/v-wave/imgs/search.svg"/></label>
</template><style scoped>
.text-input {display: grid;grid-template: 1fr / 1fr auto;place-items: center;padding: 0 16px;height: 48px;border: 2px solid #aaa;border-radius: 8px;font-size: 20px;
}
.text-input> input {border: none;outline: none;background: transparent;font-size: inherit;}
</style>

在这里插入图片描述

使用触发器示例(根据ID触发,支持多对多):

设置v-wave-trigger:gridDemov-wave=“{trigger: ‘gridDemo’}”,可支持多对多关系,点击其中一个元素,相同trigger的元素也会同步触发。

<template><div  class="waveGrid"><div class="box small" v-wave-trigger:gridDemo v-wave="{trigger: 'gridDemo',color:'blue',duration:1}" style=""></div>......<div class="box small" v-wave-trigger:gridDemo v-wave="{trigger: 'gridDemo',color:'blue',duration:1}" style=""></div></div>
</template><style scoped>
.waveGrid {display: inline-grid;grid-template: repeat(5, auto) / repeat(5, auto);place-items: center;gap: 32px;
}
.waveGrid .box.small {width: 50px;height: 50px;cursor: pointer;
}
.box {display: grid;place-items: center;width: 200px;height: 200px;padding: 16px;box-shadow: 0 4px 24px #00000026;cursor: pointer;
}
</style>

在这里插入图片描述
也可单击其中一个按钮将激活另一个按钮上的波浪:

<button v-wave="{trigger: 'button2'}" v-wave-trigger:button1>Button 1</button><button v-wave="{trigger: 'button1'}" v-wave-trigger:button2>Button 2</button>

三、组件参数Props

名称默认值类型描述
color“currentColor”string颜色
initialOpacity0.2number涟漪首次出现时的不透明度
finalOpacity0.1number当涟漪停止移动时,涟漪应该具有的不透明度
duration0.4number涟漪的总持续时间,以秒为单位
dissolveDuration0.15number“溶解动画”的持续时间,以秒为单位
waitForReleasetrueboolean鼠标释放点击之前,波纹不会溶解
easingease-outstring过度定时函数,具体查看
cancellationPeriod75number延迟,以毫秒为单位
trigger“auto”string 、boolean 、“auto”设置与触发器一起使用时波纹的行为
disabledfalseboolean无论 respectDisabledAttribute 如何,都禁用元素上的波形效果
respectDisabledAttributetrueboolean如果元素上存在 html 属性,则波形效果将被禁用
respectPrefersReducedMotiontrueboolean如果用户的 prefers-reduced-motion 设置为true ,则波形效果将被禁用
stopPropagationfalseboolean防止事件传播到父元素
tagName“div”string设置用作波形容器的元素的标记名称。这在默认值可能会干扰或类似的选择器的情况下非常有用

v-wave动画组件能提供比较漂亮的点击波纹动画效果,且组件自定义比较高,可支持多对多触发关系,有兴趣的可以尝试下!

官网链接: v-wave官网
github地址: v-wave - github

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Dash】使用 dash_mantine_components 创建图表
  • 动态规划求解最小斯坦纳树(证了一天两夜)
  • 1998年考研真题英语二(204)阅读理解翻译
  • C语言宠物系统
  • CnosDB 元数据集群 – 分布式时序数据库的大脑
  • C++(week15): C++提高:(五)Redis数据库
  • 将PPT中的元素保存为高清图片
  • 看图学sql之sql的执行顺序
  • 分布式接口文档聚合,Solon 是怎么做的?
  • Qt编程技巧小知识点(2)GPIB缓存区数据读取
  • 快递批量查询有什么软件安利一下
  • 关于手机中的红外遥控
  • leetcode hot 100(1)
  • 多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09
  • 【vue2】回车发送,Ctrl+回车换行,shift+回车换行禁用
  • 《深入 React 技术栈》
  • crontab执行失败的多种原因
  • CSS 三角实现
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • ES学习笔记(12)--Symbol
  • JAVA并发编程--1.基础概念
  • js如何打印object对象
  • Lsb图片隐写
  • Markdown 语法简单说明
  • React16时代,该用什么姿势写 React ?
  • react-native 安卓真机环境搭建
  • React中的“虫洞”——Context
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • spring boot下thymeleaf全局静态变量配置
  • Spring框架之我见(三)——IOC、AOP
  • Sublime text 3 3103 注册码
  • windows下如何用phpstorm同步测试服务器
  • 近期前端发展计划
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 聊一聊前端的监控
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 浅谈web中前端模板引擎的使用
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 我们雇佣了一只大猴子...
  • 整理一些计算机基础知识!
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • (1)SpringCloud 整合Python
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (poj1.3.2)1791(构造法模拟)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (回溯) LeetCode 77. 组合
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (三十五)大数据实战——Superset可视化平台搭建
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (已解决)什么是vue导航守卫
  • .axf 转化 .bin文件 的方法