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

码上掘金实现电子木鱼

前言

前几天在朋友圈看到“敲电子木鱼”的视频,敲一下木鱼就提示“功德 +1”,还带有敲击声和念经的声音,感觉挺有意思的。

心血来潮,捣鼓了一晚上,借助码上掘金实现了这个功能。

展示效果

素材

准备素材如下:

  • 木鱼:网上找了一张木鱼的图片,用PS简单处理成黑白的图片。* 敲木鱼音频、念经音频:网上找了素材,简单剪辑了一下。素材存放在服务器上,方便码上掘金中引入。

代码块

首先,思考一下展示效果。我们点击木鱼,响起"咚"的一声,次数+1。同时,我们可以在木鱼的右上角添加"功德 +1"的文字闪现效果。

点击木鱼,我们需要做的事情有:

  • 播放敲木鱼的声音
  • 计数+1
  • 添加交互效果(提示文字、木鱼动画等)

其中,计数很容易实现,就不赘述了。

在Vue3中,借助 audio 标签引入音频文件,调用.play()方法可以播放音频:

<audio controls ref="audio" class="aud"><source src="https://clemmensen.top/static/muyu.mp3" />
</audio><script setup> const audio = ref(null)
function playMuyu() {audio.value.play()
} </script> 

提示文字的实现是,当敲击木鱼时,给文字加上tipsActive的类名,该类名带有动画效果,文字会向上移动并消失。

@keyframes textMove {from {top: 20%;opacity: 1;}to {top: 18%;opacity: 0;}
} 

具体代码:

<div :class="['tips', { 'tips-active': tipsActive }]">{{tips}}
</div><script setup> const tips = ref('功德 +1')
function clickMuyu() {count.value ++ // 计数+1tipsActive.value = truesetTimeout(() => {tipsActive.value = false}, time.value)
} </script> 

相似的,给木鱼加上敲击效果,也就是点击会有缩放效果:

@keyframes muyuScale {0% {transform: scale(1);}50% {transform: scale(0.95);}100% {transform: scale(1);}
} 

拓展

开始界面

刚开始是直接显示一个木鱼图片,这里我们考虑添加一个自定义的开始界面,包括“Start”按钮和上方的诗词“睡到僧廊响木鱼,庄周蝴蝶两蘧蘧。”。在点击按钮后才进入木鱼图片,并开始播放背景音乐。

背景音乐

点击"Start"时,开始播放背景音乐。背景音乐的播放方法和上面提到的播放音频的方法一致,这里就不赘述了。

提供多种提示文字

右边加上了文字选择功能,可以选择功能、抗疫或Bug,对应的提示文字会跟着改变。

后记

一个简单的小项目,其中需要了解的地方是如何在vue3中使用audio标签引入音频文件。

最后

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

http://www.lryc.cn/news/547.html

相关文章:

  • 深度学习_L2正则化
  • 第一章 认识Python
  • 复习0206
  • 小红书如何查看笔记
  • linux001之linux系统部署安装
  • 服务异步通信 RabbitMQ-高级篇
  • 【PR】零基础快速入门教程
  • Matlab 点云迭代加权最小二乘法拟合平面(抑制噪声)
  • 2023 软件测试行业内卷动荡,红利期过去后,何去何从?
  • 【王道数据结构】第六章(下) | 图的应用
  • Leetcode:518. 零钱兑换 II(C++)
  • Java中类是什么
  • C进阶:预处理
  • 侯捷C++系统工程师
  • ReentrantReadWriteLock、StampedLock
  • Mysql中的事务、锁、日志详解
  • k8s笔记24--安装metrics-server及错误处理
  • 【电商】订单系统--售后的简易流程与系统关系
  • 低代码开发平台|生产管理-成本核算搭建指南
  • Xshell 安装及使用方法
  • 【Axure教程】转盘抽奖原型模板
  • 量子比特大突破!原子薄材料成为“救世主”
  • Swagger3 API接口文档规范课程(内含教学视频+源代码)
  • 数据库的基本操作
  • 分享5个超好用的Vue.js库
  • 第四章.误差反向传播法—ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现
  • Python-第二天 Python基础语法
  • 命令模式包含哪些主要角色?怎样实现命令?
  • SpringCloud-Feign
  • XCP实战系列介绍08-基于Vehicle Spy进行XCP测量的工程配置详解