马黑黑 发表于 2024-2-17 09:56

按钮+LRC极简模块简单说明

本帖最后由 马黑黑 于 2024-2-17 12:18 编辑

【JS资源】

https://638183.freep.cn/638183/web/js/btnlrc.js

【示例】
庆庆 :空心 - 音乐沙龙 - 花潮论坛 - Powered by Discuz! (huachaowang.com)


【说明】

(一)资源引用

方法一 :适用于自由环境

<script charset="utf-8" src="https://638183.freep.cn/638183/web/js/btnlrc.js"></script>

方法二 :适用于自由环境与DZ论坛

<script>
var sF = document.createElement('script');
sF.charset = 'utf-8';
sF.src = 'https://638183.freep.cn/638183/web/js/btnlrc.js';
document.querySelector('body').appendChild(sF);

//这里用 var 声明歌词
//var geci = [ , , ];
</script>


(二)配置需求 :JS资源加载后,除歌词声明,其他仅通过帖子CSS+HTML实现——

其一:声明歌词,变量固定为 geci ;
其二:歌词容器元素 id="lrc",它通过伪元素模拟同步;
其三:播放控制器元素 id="btnplay",它可以是一张图片、一个有背景图的div等等,甚至使用JS等机制为其制作复杂的图片(如《空心》);

其四:歌词使用的关键帧动画和按钮所使用的关键帧动画共三个:

@keyframes rotating { to { transform: rotate(360deg); } }
@keyframes lrcGo0 { to { clip-path: inset(0 0 0 0); } }
@keyframes lrcGo1 { to { clip-path: inset(0 0 0 0); } }


它们以及对它们的调用,都在帖子前端代码中实现,要求上述三个语句保留关键帧动画的原始名称,并,确保调用关键帧动画的 animation 属性中有 CSS变量 --state。

进一步了解 btnlrc 模块的使用,请参阅《空心》一帖的二楼代码。

【其他】

模块托管了页面中所有视频,若有视频,不论多少,视频将会与音频同步播放、暂停。同时,帖子中,animation属性调用的关键帧动画,只要加入了 var(--state) 参数,也将于按钮同步运行与暂停。

红影 发表于 2024-2-17 10:39

这个特别漂亮,各种元素考虑得十分细致{:4_199:}

红影 发表于 2024-2-17 10:41

“其三:播放控制器元素 id="btnplay",它可以是一张图片、一个有背景图的div等等,甚至使用JS等机制为其制作复杂的图片(如《空心》)”

空心里的按钮就是这样的复杂图片,也可以让人跟着学做各种可能的图案设置了{:4_187:}

红影 发表于 2024-2-17 10:43

歌词的JS部分打包了,CSS部分还留着,可以自己按自己的需求调整呢{:4_199:}

马黑黑 发表于 2024-2-17 11:53

红影 发表于 2024-2-17 10:39
这个特别漂亮,各种元素考虑得十分细致

抽离出来的JS资源不负责界面渲染,它只管动作。UI的实现,在帖子中用CSS+JS完成

马黑黑 发表于 2024-2-17 12:19

红影 发表于 2024-2-17 10:41
“其三:播放控制器元素 id="btnplay",它可以是一张图片、一个有背景图的div等等,甚至使用JS等机制为其制 ...

这个按模板去做就行,叶瓣或花瓣的变量 all 可以不声明,就像帖子里的做法那样

小辣椒 发表于 2024-2-17 14:51

黑黑这个是新出来的,解释说明很清晰,先转过去看看 空心帖

小辣椒 发表于 2024-2-17 14:53

黑黑特别优秀的老师,讲课特别耐心{:4_199:}

小辣椒先收藏一下

樵歌 发表于 2024-2-17 15:59

这瓜好甜,俺 把瓜皮也吃了{:4_173:}

马黑黑 发表于 2024-2-17 19:27

樵歌 发表于 2024-2-17 15:59
这瓜好甜,俺 把瓜皮也吃了

瓜,营养在瓜皮

樵歌 发表于 2024-2-17 21:34

马黑黑 发表于 2024-2-17 19:27
瓜,营养在瓜皮

好吧,以后光瓜行动了{:4_173:}

马黑黑 发表于 2024-2-17 22:30

樵歌 发表于 2024-2-17 21:34
好吧,以后光瓜行动了

你可以选择支持瓜皮,这样负担小一些

红影 发表于 2024-2-18 20:43

马黑黑 发表于 2024-2-17 11:53
抽离出来的JS资源不负责界面渲染,它只管动作。UI的实现,在帖子中用CSS+JS完成

嗯嗯,渲染是css完成的吧。

红影 发表于 2024-2-18 20:44

马黑黑 发表于 2024-2-17 12:19
这个按模板去做就行,叶瓣或花瓣的变量 all 可以不声明,就像帖子里的做法那样

嗯嗯,等空了去试着学习一个{:4_187:}

马黑黑 发表于 2024-2-18 21:50

红影 发表于 2024-2-18 20:43
嗯嗯,渲染是css完成的吧。

是的

马黑黑 发表于 2024-2-18 21:50

红影 发表于 2024-2-18 20:44
嗯嗯,等空了去试着学习一个

{:4_190:}

红影 发表于 2024-2-18 22:58

马黑黑 发表于 2024-2-18 21:50
是的

css和js各自管好自己的事{:4_173:}

马黑黑 发表于 2024-2-18 23:00

红影 发表于 2024-2-18 22:58
css和js各自管好自己的事

js也可以渲染前台,有时还非得它不可,看需要

红影 发表于 2024-2-19 12:18

马黑黑 发表于 2024-2-18 23:00
js也可以渲染前台,有时还非得它不可,看需要

嗯嗯,这样的案例黑黑也做过的{:4_187:}

马黑黑 发表于 2024-2-19 15:19

红影 发表于 2024-2-19 12:18
嗯嗯,这样的案例黑黑也做过的

JS在渲染页面方面,既可以不作为,也可以有比CSS和HTML更大的作为
页: [1] 2
查看完整版本: 按钮+LRC极简模块简单说明