内容简介:一个简单的
pc-pcm-wave
一个简单的 pcm
波纹效果, 适用于 preact
项目, hooks
编写, 有如下特性
- 可自定义状态数量
- 可自定义线的数量、粗细、颜色、波速、振幅、延迟等参数
Live Demo
Props
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
stateMap | StateMap | 默认参数 | |
className | string | 根元素className | |
transitionDuration | number | 500 | 状态变换时长 |
Props Type: StateMap
键名 | 键值 | 描述 |
---|---|---|
[string] | State | 状态配置 |
Props Type: State
键名 | 键值 | 描述 |
---|---|---|
a | number | 振幅 |
ws | number | 波速 |
p | number | 频率 |
width | number | 线宽度 |
color | string | 线颜色 |
delay | number | 延迟单位秒 |
VM Public Methods
方法 | 参数 | 描述 |
---|---|---|
setState | stateName(string) | 切换到stateMap的键值所对应的配置 |
Demo Code
const line1Def = { p: 0.7, width: 1.3, color: 'rgba(255,255,255,1)', delay: 0, } const line2Def = { p: 0.7, width: 1, color: 'rgba(255,255,255,0.5)', delay: 0.45, } const stateMap = { idle: [ { a: 0, ws: 0, ...line1Def }, { a: 0, ws: 0, ...line2Def }, ], noise: [ { a: 4, ws: 9, ...line1Def }, { a: 3, ws: 9, ...line2Def }, ], voice: [ { a: 9, ws: 11, ...line1Def }, { a: 7, ws: 11, ...line2Def }, ], } function Page() { const waveRef = useRef() const onClick = () => { // 建议参考Demo的代码 waveRef.current && waveRef.current.setState(Math.random() > 0.5 ? 'noise' : 'voice') } return <div onClick={onClick}> <PCMWave ref={waveRef} stateMap={stateMap} /> </div> }
TODO
- 增加更多效果
License
MIT 造轮子锻炼抽象能力
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Item点击水波纹效果
- 使用CSS实现逼真的水波纹点击效果
- flutter 自定义带水波纹和点击态的cell
- 手撕一个让人 “欲罢不能” 的水波纹选中控件
- React 组件模式-有状态组件 x 无状态组件、容器组件 x 展示组件、高阶组件 x 渲染回调(函数作为子组件)
- Serverless 组件开发尝试:全局变量组件和单独部署组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C语言从入门到精通
王娣//韩旭 / 清华大学 / 2010-7 / 49.80元
《C语言从入门到精通》从初学者的角度出发,以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识。全书共分17章,包括C语言概述,算法,数据类型,运算符与表达式,常用的数据输入、输出函数,选择结构程序设计,循环控制,数组,函数,指针,结构体和共用体,位运算,预处理,文件,存储管理,网络套接字编程和学生成绩管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出......一起来看看 《C语言从入门到精通》 这本书的介绍吧!