马黑黑 发表于 2024-12-5 11:49

椭圆环粒子播放器配置说明

<style>
        .art p { margin: 12px 0; font: normal 18px/24px sans-serif; }
        .art mark { padding: 2px 6px; background: lightblue; }
        .art svg { outline: 1px solid silver; }
        .tRed { color: red; }
</style>

<div class="art">
        <p>椭圆环外观为椭圆,也可以通过帖子前台CSS代码将其设置为圆形或其他形状。下面是模块的引用及参数配置,请根据需要选择两种配置中的一种:</p>
        <div id="d1"><pre id="p1">
&lt;script type="module"&gt;
        /* 导入模块 */
        import { hcplay } from 'https://638183.freep.cn/638183/web/mod/ellipse_lrc.css';

        //配置模块参数一 :基于纯音乐(tz为id="tz"的帖子容器对象,下同)
        hcplay(tz);

        //配置模块参数二 :基于lrc歌词同步
        var geci = [,];
        hcplay(tz, geci);
&lt;/script&gt;
        </pre></div>
        <p>模块需要css以及HTML相应元素代码的支持。先说css:</p>
        <div id="d2"><pre id="p2">
&lt;style&gt;
        /* 引用配套CSS资源 */
        @import 'https://638183.freep.cn/638183/web/mod/ellipse_lrc.css';

        /* 帖子主容器可以配置粒子相关的CSS变量,也可以缺省以使用模块默认设置 */
        #tz {
                --lzNum: 40; /* 粒子总数(缺省50)*/
                --lzRot: 100deg; /* 粒子旋转角度(缺省80deg) */
                --lzSize: 8; /* 粒子最小尺寸(缺省10)*/
                --lzBg: purple; /* 粒子最小尺寸,支持颜色、渐变、图片(缺省随机)*/
                /* 这里开始其它必要的代码 */
        }

        /* 粒子的形状通过border-radius单独设置,不设置使用缺省值 */
        .lz {
                border-radius: 20% 70%; /* 缺省 50% */
        }

        /* 播放器 id="mplayer" 定位与配色 */
        #mplayer {
                --track: silver; /* 进度条底轨颜色(缺省#ccc)*/
                --prog: red; /* 进度条进度指示色(缺省#eee)*/
                color: silver; /* 文本颜色(缺省#eee) */
                width: 200px; /* 椭圆环宽度(缺省180px)*/
                height: 100px; /* 椭圆环高度(缺省90deg)*/
                /* border-radius: 50%; 默认圆角半径*/
                /* border: 20px dotted #336699; 默认边框样式*/
        }

        /* 按钮默认背景 :支持颜色、图片与渐变 */
        /* #mbtn::after { background: linear-gradient(30deg, tan,green); } */

        /* #lrc { top: 15px; } lrc歌词定位机其它设置(若有) */

        /* #fsbtn { bottom: 20px; } 全屏按钮定位 */

        /* 这里是其它元素的CSS代码 */
&lt;/style&gt;
        </pre></div>
        <p>HTML结构则根据是否需要lrc同步歌词、全屏按钮决定其元素结构,在相应元素中使用 class 属性以令所引用的CSS资源生效:</p>
        <div id="d3"><pre id="p3">
&lt;!-- id="mplayer" 的播放控制器已经在模块中添加 --&gt;
&lt;div id="pa" class="pa"&gt;
        &lt;audio src="音乐地址"&gt;&lt;/audio&gt;
        &lt;!--video class="vid" src="视频地址" autoplay loop muted&gt;&lt;/video--&gt;
        &lt;!--svg width="100%" height="100%"&gt;&lt;/svg--&gt;
        &lt;!-- div id="lrc" class="lrc" data-lrc="HCPlayer"&gt;HCPlayer&lt;/div--&gt;
        &lt;!-- div id="fsbtn" class="fsbtn"&gt;进入全屏&lt;/div--&gt;
&lt;/div&gt;
        </pre></div>
        <p>上面代码中,帖子容器、视频、SVG、全屏按钮、lrc歌词容器等凡有class属性的,都会使用对应的CSS资源所设置的class选择器所设定的样式,不满意的可使用 #选择器 重新设定相关CSS属性。</p>
        <p>最后给出《Discover》一帖全部代码供诸位参考。代码可以复制到 <a href="http://mhh.52qingyin.cn/api/pcode/" target="_blank">pencil-code</a> 或存为本地.html文档,然后修改相应数据观察运行结果:</p>
        <div id="hEdiv"><pre id="hEpre">
&lt;style&gt;
        @import 'https://638183.freep.cn/638183/web/mod/ellipse_lrc.css';
        #tz { --lzNum: 40; --lzRot: 100deg; --lzSize: 8; background: url('https://638183.freep.cn/638183/t24/5/discover.jpg') no-repeat center/cover; }
        #mplayer { --prog: red; --track: silver; color: silver; width: 200px; height: 100px; }
        #fsbtn { bottom: 20px; }
&lt;/style&gt;

&lt;div id="tz" class="pa"&gt;
        &lt;audio id="aud" src="https://music.163.com/song/media/outer/url?id=30780810" autoplay loop&gt;&lt;/audio&gt;
        &lt;div id="fsbtn" class="fsbtn"&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;script type="module"&gt;
        import { hcplay } from 'https://638183.freep.cn/638183/web/mod/ellipse_lrc.js';
        import fscreen from 'https://638183.freep.cn/638183/web/mod/fscreen.js';
        hcplay(tz);
        fscreen.fs(tz, fsbtn);
&lt;/script&gt;
        </pre></div>
</div>

<script type="module">
import hl from 'https://638183.freep.cn/638183/web/mod/helight.js';
hl.hl(d1, p1);
hl.hl(d2, p2);
hl.hl(d3, p3);
hl.hl(hEdiv, hEpre);
</script>

杨帆 发表于 2024-12-5 13:01

辛苦了!谢谢马老师深度分享{:4_191:}

花飞飞 发表于 2024-12-5 20:13

这个说明更详细了,刚看了下,可以根据说明自己更改粒子的数量角度等,这个看上去更好玩。。

花飞飞 发表于 2024-12-5 20:14

播放器的每一个属性也都给了说明,可以进行个性化设置。。
使用时配套说明,可以做符合贴子的个性化调整。。

花飞飞 发表于 2024-12-5 20:15

看了作品,默认的配置都很经典,非常好看。。

马黑黑 发表于 2024-12-5 20:29

花飞飞 发表于 2024-12-5 20:15
看了作品,默认的配置都很经典,非常好看。。

最好能研究一下CSS文档,酱紫做帖时心中有数

马黑黑 发表于 2024-12-5 20:30

花飞飞 发表于 2024-12-5 20:14
播放器的每一个属性也都给了说明,可以进行个性化设置。。
使用时配套说明,可以做符合贴子的个性化调整。 ...

是的

马黑黑 发表于 2024-12-5 20:30

杨帆 发表于 2024-12-5 13:01
辛苦了!谢谢马老师深度分享

晚上好

马黑黑 发表于 2024-12-5 20:31

花飞飞 发表于 2024-12-5 20:13
这个说明更详细了,刚看了下,可以根据说明自己更改粒子的数量角度等,这个看上去更好玩。。

这个是纯css+HTML代码做成的播放器UI,播放器自带粒子,粒子也可以改变形状

小辣椒 发表于 2024-12-5 21:39

配置说明其实很重要,这里看懂做起来就轻松了

红影 发表于 2024-12-5 22:13

粒子的配置居然是在#tz里的,还以为会另外设置一个名称呢。非常简洁,默认的也很好看,完美{:4_199:}

红影 发表于 2024-12-5 22:23

还封装了鼠标触碰的变色呢。封装的默认设置漂亮,还有可供自己修改的地方,又漂亮又方便{:4_199:}

红影 发表于 2024-12-5 22:23

感谢黑黑的详细讲解{:4_199:}

马黑黑 发表于 2024-12-5 23:05

红影 发表于 2024-12-5 22:23
感谢黑黑的详细讲解

阔气阔气

马黑黑 发表于 2024-12-5 23:05

小辣椒 发表于 2024-12-5 21:39
配置说明其实很重要,这里看懂做起来就轻松了

对的

马黑黑 发表于 2024-12-5 23:07

红影 发表于 2024-12-5 22:13
粒子的配置居然是在#tz里的,还以为会另外设置一个名称呢。非常简洁,默认的也很好看,完美

帖子容器可以携带其子孙元素所需的CSS变量。事实上,在css里,最常见的做法是根选择器 :root 携带通用CSS变量

马黑黑 发表于 2024-12-5 23:07

红影 发表于 2024-12-5 22:23
还封装了鼠标触碰的变色呢。封装的默认设置漂亮,还有可供自己修改的地方,又漂亮又方便

{:4_190:}

红影 发表于 2024-12-6 11:29

马黑黑 发表于 2024-12-5 23:05
阔气阔气

其实每个封装都要考虑很多细节,真不容易{:4_187:}

红影 发表于 2024-12-6 11:38

马黑黑 发表于 2024-12-5 23:07
帖子容器可以携带其子孙元素所需的CSS变量。事实上,在css里,最常见的做法是根选择器 :root 携带通用CSS ...

看到根选择器有点头晕,还是现在的样子好{:4_173:}

红影 发表于 2024-12-6 11:39

马黑黑 发表于 2024-12-5 23:07


谢大咖{:4_187:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 椭圆环粒子播放器配置说明