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

【SassVue】仿网易云播放器动画

简介

仿网易云播放动画

效果图(效果图)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

最终成品效果

在这里插入图片描述
在这里插入图片描述

动画组件

src/components/music/MusicPlayAnimate.vue

<template><div class="music-play"><div></div><div></div><div></div></div>
</template><script setup>
const props = defineProps({state: {type: Boolean,default: true,},color: {type: String,default: "blue",},
});
</script><style lang="sass" scoped>
// TODO 音乐播放器动画
//  ? 动画停止class >>> .muscic-play-stop
// HTML结构
// <div class="music-play">
//     <div></div>
//     <div></div>
//     <div></div>
// </div>$music-play-box-height: 20px//音乐播放状态高度
$music-play-width: 3.2px//音乐播放状态宽度
$music-play-delys: .5s//音乐播放状态动画延迟
$music-play-gap: 6px//音乐播放状态间距
$music-animate-time: .75s//动画播放时长
$music-play-radius: 4px 4px 0 0 //圆角
$music-play-pos: center bottom//动画位置.music-playdisplay: inline-blockwidth: calc(#{$music-play-width * 3 + $music-play-gap })position: relativeheight: $music-play-box-height.music-play>divposition: absolutewidth: $music-play-widthheight: 100%border-radius: $music-play-radiusanimation: music-play-an #{$music-animate-time} linear infinitetransform-origin: $music-play-posanimation-play-state: v-bind('props.state===true?"running":"paused"')background: v-bind('props.color')@for $i from 1 through 3.music-play>div:nth-child(#{$i})animation-delay: calc(#{($i - 1) * $music-play-delys})margin-left: calc(#{$music-play-gap * ($i - 1)})@keyframes music-play-an0%,100%transform: scaleY(1)50%transform: scaleY(0)
</style>

使用组件

src/Views/HomeView.vue

<template><divstyle="display: flex;flex-direction: column;gap: 20px;width: 100px;margin: 20px;"><button @click="test1">播放</button><music-play-animate :state="musicPlay" color="red" /><music-play-animate :state="musicPlay" /> </div>
</template><script setup>
import { ref } from "vue"; 
import MusicPlayAnimate from "../components/music/MusicPlayAnimate.vue";const musicPlay = ref(true),test1 = () => {musicPlay.value = !musicPlay.value;console.log(musicPlay.value);};
</script>
http://www.lryc.cn/news/267048.html

相关文章:

  • CentOS进入单用户模式
  • 微信小程序~如何设置页面的背景色
  • 图灵日记之java奇妙历险记--输入输出方法数组
  • CSS新手入门笔记整理:CSS3弹性盒模型
  • OCP NVME SSD规范解读-1
  • 大规模和复杂问题挑战——分治思想来应战
  • 六西格玛的科技漩涡——张驰咨询如何促成企业变革
  • 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
  • 【案例】图片预览
  • ubuntu 18/20/22 安装 mysql 数据库
  • 通过U盘:将电脑进行重装电脑
  • C# SqlSugar 数据库 T4模板
  • ARM AArch64的TrustZone架构详解(下)
  • 《Nature》预测 2024 科技大事:GPT-5预计明年发布等
  • 「Verilog学习笔记」并串转换
  • 应急响应常用命令
  • 使用React和ResizeObserver实现自适应ECharts图表
  • 修改第三方npm包
  • Redis性能优化:关键配置和最佳实践
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:241-249)
  • typeorm联表查询:副表json格式放到主表字段下或多个副表字段并列主表字段
  • Flume采集日志存储到HDFS
  • redis—String字符串
  • 三相电机转差率为负值的情形
  • 关于Dark Frost 僵尸网络对游戏行业进行DDoS攻击的动态情报
  • MongoDB数据库本地部署并结合内网穿透实现navicat公网访问
  • 前端学习笔记
  • Vue实现响应式布局
  • linux:下载、网络请求、端口
  • 182.【2023年华为OD机试真题(C卷)】敏感字段加密(字符串的分割、替换和拼接实现JavaPythonC++JS)