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

Vue - 关于vue-kinesis 移动动画组件

Vue - 关于vue-kinesis 移动动画组件

vue-kinesis可以根据鼠标移动或滚动条来控制元素动画的动画效果;除此之外,vue-kinesis 还可以设置音频文件,根据音频频率来控制动画的跳动效果。
在这里插入图片描述

一、安装vue-kinesis

Vue2版本:
1.安装
npm install --save vue-kinesis2.默认导入
import Vue from 'vue'
import VueKinesis from 'vue-kinesis'Vue.use(VueKinesis)
Vue3版本:
1.安装
npm install --save vue-kinesis@next2.默认导入
import { createApp } from "vue";
import App from "./App.vue";
import VueKinesis from "vue-kinesis";const app = createApp(App);
app.use(VueKinesis);app.mount("#app");

二、如何使用

vue-kinesis包括三个组件,每个组件都有自己的属性来控制交互流程:

Kinesis-container — 用于禁用或启用交互的包装器组件。 此外,为了附加触发动画的事件,支持移动(鼠标交互)和滚动。 但是,移动设备不支持 move 事件

Kinesis-element — 要应用动画的元素的包装组件,以及指定动画类型或来源

Kinesis-audio — 此组件用于指定在将音频源添加到 kinesis 容器时要响应的音频频率

关于文字简单演示(Vue3):

<template><kinesis-container><kinesis-element :strength="10"> 我会偏移! </kinesis-element><kinesis-element :strength="20"> 我比它更偏移! </kinesis-element></kinesis-container>
</template><script setup>
import { KinesisContainer, KinesisElement } from "vue-kinesis";
</script>

在这里插入图片描述
关于图片简单演示(Vue3):

<template><kinesis-container class="image-container"><kinesis-elementclass="img_2"tag="img":src="a3":strength="-12"type="rotate"transformOrigin="50% 300%"axis="x"/><kinesis-elementclass="img_2"tag="img":src="a2":strength="12"type="rotate"transformOrigin="50% 300%"axis="x"/><kinesis-elementtag="img":src="a4":strength="25"type="rotate"transformOrigin="50% 300%"axis="x"/><kinesis-elementtag="img":src="a5":strength="-25"type="rotate"transformOrigin="50% 300%"axis="x"/><kinesis-elementclass="img_depth"tag="img":src="a1":strength="10"type="depth"transformOrigin="50% 300%"/></kinesis-container>
</template><script setup>
import { KinesisContainer, KinesisElement } from "vue-kinesis";var a1 = new URL("./assets/1.jpg", import.meta.url).href;
var a2 = new URL("./assets/2.jpg", import.meta.url).href;
var a3 = new URL("./assets/3.jpg", import.meta.url).href;
var a4 = new URL("./assets/4.jpg", import.meta.url).href;
var a5 = new URL("./assets/5.jpg", import.meta.url).href;</script><style scoped>
.image-container {position: relative;width: 100px;margin: auto;text-align: center;
}
img {position: absolute;left: 0;top: 0;height: 100px;border-radius: 10px;
}
.img_depth{position: relative;z-index: 3;
}
.img_1{z-index: 1;
}
.img_2{z-index: 2;
}
</style>

在这里插入图片描述
关于音频简单演示(Vue3):

<template><kinesis-container :audio="audioFile" :playAudio="isPlaying"><kinesis-audio :audioIndex="50" :strength="50" type="scale"><kinesis-element :strength="10" type="depth"><div class="circle" @click="togglePlaying">{{ isPlaying ? "Stop" : "Play" }}</div></kinesis-element></kinesis-audio></kinesis-container>
</template><script setup>
import { KinesisContainer, KinesisElement, KinesisAudio } from "vue-kinesis";
import { ref } from "vue";var audioFile = new URL("./assets/audo.mp3", import.meta.url).href;
const isPlaying = ref(false);function togglePlaying() {isPlaying.value = !isPlaying.value;
}
</script><style scoped>
.circle {width: 100px;height: 100px;border-radius: 10px;background: red;display: flex;justify-content: center;align-items: center;color: white;box-shadow: 0 0 2px 1px rgba(0,0,0,0.2);
}
</style>

在这里插入图片描述

三、组件参数Props

kinesis-container

PropTypeDefault ValueDescription
activeBooleantrue启用或禁用交互
durationNumber1000视差动画的速度(毫秒)
easingString“cubic-bezier(0.23, 1, 0.32, 1)”简化视差动画
tagtagdiv接受任何有效的html标签
eventString“move”容器将作出反应的事件。可能的值是 “move” 和 “scroll”
perspectiveNumber1000适用于“depth”视差类型
audioString指向音频文件的路径
playAudioBoolean启动/停止附加的音频文件

kinesis-element

PropTypeDefault ValueDescription
strengthNumber10运动效果的强度
typeString“translate”动画类型:translate - rotate - scale - scaleX - scaleY - depth - depth_inv
tagString“div”接受任何有效的html标签
transformOriginString“center”类似于CSS的transform-origin属性,具体查看
originXNumber50运动相对于容器的原点位于X轴上。50是容器的中心,0是左侧,100是右侧。
originYNumber50运动相对于容器的原点位于Y轴上。50是容器的中心,0是顶侧,100是底侧。
axisStringnull将移动限制在一个轴上。可能的值:“x”-“y”
maxXNumbernull限制X轴上的最大移动范围
maxYNumbernull限制Y轴上的最大移动范围
minXNumbernull限制X轴上的最小移动范围
minYNumbernull限制Y轴上的最小移动范围
cycleNumber0动作重复次数

kinesis-audio

PropTypeDefault ValueDescription
audioIndexNumber50在0到127的整数值范围内,对哪个频率做出反应。
strengthNumber10运动效果的强度
typeString“translate”动画类型:translate - rotate - scale - scaleX - scaleY - depth - depth_inv
tagString“div”接受任何有效的html标签
transformOriginNumber“center”类似于CSS的transform-origin属性,具体查看
originXNumber50运动相对于容器的原点位于X轴上。50是容器的中心,0是左侧,100是右侧。
originYNumber50运动相对于容器的原点位于Y轴上。50是容器的中心,0是顶侧,100是底侧。
axisStringnull将移动限制在一个轴上。可能的值:“x”-“y”
maxXNumbernull限制X轴上的最大移动范围
maxYNumbernull限制Y轴上的最大移动范围
minXNumbernull限制X轴上的最小移动范围
minYNumbernull限制Y轴上的最小移动范围
cycleNumber0动作重复次数

如前所述,除了鼠标移动"move"触发事件,对于滚动条"scroll"触发事件也是可以的,使用type+transformOrigin参数,能搭配出各种动画效果。

官网链接: vue-kinesis官网
github地址: vue-kinesis - github

相关文章:

Vue - 关于vue-kinesis 移动动画组件

Vue - 关于vue-kinesis 移动动画组件 vue-kinesis可以根据鼠标移动或滚动条来控制元素动画的动画效果&#xff1b;除此之外&#xff0c;vue-kinesis 还可以设置音频文件&#xff0c;根据音频频率来控制动画的跳动效果。 一、安装vue-kinesis Vue2版本&#xff1a; 1.安装 …...

leetCode- - - 链表

目录 1.反转链表&#xff08;leetcode206&#xff09; 2. 链表内指定区间反转&#xff08;leetcode92&#xff09; 3.链表中的节点每k个一组翻转&#xff08;leetcode25&#xff09; 4.合并两个排序的链表&#xff08;leetcode21&#xff09; 5.链表的中间节点&#xff08…...

Ashok:一款多功能开源网络侦查OSINT工具

关于Ashok Ashok是一款多功能开源网络侦查公开资源情报OSINT工具&#xff0c;该工具可谓是OSINT领域中的瑞士军刀&#xff0c;广大研究人员可以使用该工具轻松完成网络侦查任务。 侦察是渗透测试的第一阶段&#xff0c;这意味着在计划任何实际攻击之前收集信息。因此&#xff…...

没有获取淘宝API的资质怎么获取淘宝数据

淘宝是头部电商平台之一&#xff0c;每个自研商家或电商软件服务商想要开发电商管理功能模板就少不了要对接淘宝API。淘宝API是在淘宝开放平台提供的&#xff0c;自研商家和软件服务商接入淘宝开放平台需要经过一系列审核和申请流程&#xff0c;要求资质和相关资料符合对应的要…...

SQL手工注入

目录 1.判断是否存在sql注入点 1.1我们在地址栏中输入?id1 1.2我们在地址栏中输入?id-- 2.联合查询 2.1首先知道表格有几列&#xff0c;如果报错就是超过列数&#xff0c;如果显示正常就是没有超出列数。 2.2爆出显示位&#xff0c;就是看看表格里面哪一列是在页面显示…...

【SQL】大的国家

目录 题目 分析 代码 题目 World表&#xff1a; ---------------------- | Column Name | Type | ---------------------- | name | varchar | | continent | varchar | | area | int | | population | int | | gdp | bigint | ----…...

8月5日学习笔记 glibc安装与安全用户角色权限

一&#xff0c;glibc安装 https://www.mysql.com/ 官⽹ https://downloads.mysql.com/archives/community/ https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-li nux-glibc2.12-x86_64.tar 安装步骤 1.安装依赖库 [rootlocalhost ~]# yum list installed |g…...

DrissionPage 一个替代selenium的pip --- 一个可以接管正在运行的chrome包

DrissionPage 一个替代selenium的pip包&#xff0c;持续更新 1、加载内容&#xff0c;并接管chrome浏览器 from DrissionPage import ChromiumPage, ChromiumOptions page ChromiumPage(addr_or_opts127.0.0.1:9222) print(page.title)ul page.eles(idform-submit) for i i…...

爬虫入门--了解相关工具

目录 1.爬虫与python 2.第一个爬虫 3.web请求的全过程 3.1服务器渲染 3.2前端JS渲染 4.浏览器工具 4.1Elements 4.2Console 4.3Source 4.4network&#xff08;重点&#xff09; 5.小结 1.爬虫与python 首先我们要知道&#xff0c;爬虫一定要用Python么? 非也~…...

django项目中通用的分页组件

文章目录 分页组件pager组件代码 分页组件 应用分页组件&#xff0c;需要以下两个步骤&#xff1a; 视图函数中&#xff1a;&#xff08;先获取queryset&#xff0c;将request和queryset传入分页组件对象中&#xff0c;得到生成的html标签&#xff09; def customer_list(requ…...

想实现ubuntu搭建sqli-labs靶场

目录 首先前期的nginx和php部署完成​编辑​编辑 Xftp导入sqli-labs 遇到了的问题 它提示我们请检查db-creds.inc 去尝试解决这个问题 尝试修改MySQL root密码 修改db-creds.inc配置 再次尝试依旧失败 思考&#xff1a;会不会是MySQL版本过高的原因 重新下载MySQL5.7.…...

tp8 按日期分组查出数据

1.如果数据库里时间字段都是时间戳,使用mysql中的from_unixtime()函数 field("from_unixtime(create_time,%Y-%m-%d) as time,group_concat(id)")->group(time)->select()2. 如果数据库是普通的日期格式&#xff08;如2024-01-02 01:23:50&#xff09;&#x…...

单例模式(懒汉模式,饿汉模式)

单例的饿汉模式&#xff1a;在主函数未调用之前该单例就已经存在了&#xff0c;所以不存在线程安全的问题。 class Singleton { private: Singleton(){} public:static Singleton s1;static Singleton* GetInstance(){return &s1;}Singleton(const Singleton&) delet…...

【Qt】Item Widgets 多元素控件

Qt中提供的多元素控件有&#xff1a; QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView 上述控件分为Widget和View&#xff0c;其区别如下&#xff1a; 以QTableWidget和QTableView为例 QTableView是基于MVC(Model-View-Controller)设计的控件。QTableView自身…...

sharded_inference_engine:MLXDynamicShardInferenceEngine;step

目录 sharded_inference_engine:MLXDynamicShardInferenceEngine 类属性 方法 __init__(self) async def infer_prompt(self, shard: Shard, prompt: str, inference_state: Optional[str] = None) -> (np.ndarray, str, bool) async def infer_tensor(self, shard: …...

JAVA开发学习-day21

JAVA开发学习-day21 1. 删除表单数据 根据ElementUI的官方组件指南&#xff0c;为表单每列的数据添加删除按钮 <el-table :data"tableData" style"width: 100%"><el-table-column prop"id" label"ID" width"180"…...

Python的安装环境以及应用

1.环境python2&#xff0c;Python 最新安装3.12可以使用源码安装 查看安装包 [rootpython001 ~]# yum list installed | grep epel 3[rootpython001 ~]# yum list installed | grep python [rootpython001 ~]# yum -y install python3 安装python3 查看版本 [root…...

TabLayout使用以及自定义tab标签

<?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tool…...

第二十节、有限状态机和抽象类多态

一、抽象类 挂载到动画器上的就是继承抽象类代码 1、使用onenable周期函数启用 2、在每一个周期函数中对抽象类进行调用 3、隐藏公开的变量...

SQL注入实例(sqli-labs/less-23)

0、初始网页 1、闭合方式判断 闭合符号为单引号&#xff0c;通过测试发现过滤了注释&#xff0c;所以直接闭合 2、确定查询表的列数 确定查询表的列数为3列 ?id1 order by 3 3、确定回显位置 回显位置为第二列和第三列 ?id-1 union select 1,2,3 4、查看当前登录和数据…...

2025届最火的五大降重复率神器推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 把AI生成内容的痕迹降下来&#xff0c;其关键在于回归自然表达&#xff0c;具体来说&#x…...

如何让Windows播放器支持所有视频格式:终极媒体解码解决方案

如何让Windows播放器支持所有视频格式&#xff1a;终极媒体解码解决方案 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters 你是否曾经遇到过这样的烦恼&#xf…...

3大阶段×50个项目:Android Kotlin实战的能力跃迁指南

3大阶段50个项目&#xff1a;Android Kotlin实战的能力跃迁指南 【免费下载链接】50-android-kotlin-projects-in-100-days My everyday Android practice demos with Kotlin in 100 days. 项目地址: https://gitcode.com/gh_mirrors/50/50-android-kotlin-projects-in-100-d…...

Ansys Circuit新手必看:导入IBIS模型时,Pin Import和Buffer Import到底怎么选?

Ansys Circuit实战指南&#xff1a;IBIS模型导入的Pin与Buffer选择策略 第一次打开Ansys Circuit准备进行SIPI仿真时&#xff0c;那个看似简单的IBIS模型导入界面往往会让新手工程师陷入沉思——Pin Import和Buffer Import这两个选项到底有什么区别&#xff1f;选择错误会导致仿…...

React Hooks 服务器端渲染测试终极指南:如何避免 SSR 常见陷阱 [特殊字符]

React Hooks 服务器端渲染测试终极指南&#xff1a;如何避免 SSR 常见陷阱 &#x1f680; 【免费下载链接】react-hooks-testing-library &#x1f40f; Simple and complete React hooks testing utilities that encourage good testing practices. 项目地址: https://gitco…...

在ABAQUS中用SPH模拟倒酒过程,超有趣的小探索

ABAQUS模拟倒酒过程&#xff0c;酒用sph模拟最近在玩ABAQUS&#xff0c;突发奇想试试模拟倒酒过程&#xff0c;酒用SPH&#xff08;光滑粒子流体动力学&#xff09;方法来模拟&#xff0c;那效果简直绝了&#xff0c;跟大家分享分享我的折腾经历。 为啥选SPH模拟酒&#xff1f;…...

OpenClaw镜像体验:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF云端快速测试方案

OpenClaw镜像体验&#xff1a;Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF云端快速测试方案 1. 为什么选择云端体验OpenClaw 第一次接触OpenClaw时&#xff0c;我被它的自动化能力吸引&#xff0c;但本地安装过程却让我望而却步。作为一个经常需要快速验证技术方案的开…...

避坑指南:Zephyr RTOS与nRF Connect SDK环境搭建常见错误及解决方案

Zephyr RTOS与nRF Connect SDK环境搭建深度排错手册 当你的开发环境突然"罢工"&#xff1a;一位工程师的实战笔记 去年冬天&#xff0c;当我第一次尝试在Windows系统上搭建nRF Connect SDK&#xff08;NCS&#xff09;开发环境时&#xff0c;整整三天时间都耗在了各种…...

BlynkEthernet_Manager:嵌入式以太网Blynk连接管理框架

1. BlynkEthernet_Manager&#xff1a;面向工业级嵌入式设备的以太网Blynk连接管理框架1.1 工程定位与设计哲学BlynkEthernet_Manager并非通用型网络中间件&#xff0c;而是一个面向资源受限但需高可靠远程交互场景的专用连接管理层。其核心工程目标明确&#xff1a;在Teensy 4…...

MiniCPM-o-4.5-nvidia-FlagOS企业级方案:高可用服务器集群部署指南

MiniCPM-o-4.5-nvidia-FlagOS企业级方案&#xff1a;高可用服务器集群部署指南 1. 引言&#xff1a;当AI应用走向规模化 想象一下这个场景&#xff1a;你的团队基于MiniCPM-o-4.5-nvidia-FlagOS开发了一款智能客服应用&#xff0c;上线初期反响不错。但随着用户量激增&#x…...