帖子代码:
<style>
@import 'https://638183.freep.cn/638183/web/api/audioplayer.css';
.pa { --offsetX: 81px; --bg: url('https://638183.freep.cn/638183/small/webp/jixp.webp') no-repeat center/cover; color: rgba(0,0,0,.8); }
.player { width: 480px; bottom: 10px; }
.btnFs { top: 25px; right: 20px; }
#msvg { position: absolute; width: 12vw; heighht: 12vw; transition: .75s; opacity: 1; }
#msvg path { fill-rule: evenodd; animation: draw 6s linear forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
</style>
<div id="pa" class="pa">
<video class="pd-vid" src="https://img2.tukuppt.com/video_show/2418175/00/02/22/5b52de8ec8111.mp4" autoplay loop muted></video>
<svg id="msvg" viewBox="-200 -200 400 400"><title>播放/暂停(Alt+X)</title></svg>
</div>
<script>
var options = {
pa: '.pa',
urls: [['https://music.163.com/song/media/outer/url?id=558035016', '机械']],
btns: [msvg],
};
loadJs('https://638183.freep.cn/638183/web/api/audioplayer.min.js', function() {
loadJs('https://638183.freep.cn/638183/svgdr/svgdr.min.js', tzRun);
});
function tzRun() {
var aud = new AudPlayer(options);
var dr = _dr(msvg);
const vertex1 = dr.circlePoints(26, 200, 180);
const vertex2 = dr.circlePoints(26, 200, 160);
let path = 'M';
for (let i = 0; i < vertex1.length; i++) {
const v1 = (i > 0 ? 'L' : '') + vertex1[i].join(',');
const v2 = (i > 0 ? 'L' : '') + vertex2[i].join(',');
path += i % 2 === 0 ? v1 + ' ' + v2 + ' ' : v2 + ' ' + v1 + ' ';
};
var beginPos = vertex1[0];
path += `L${vertex1[0].join(',')},120 0 A1 1,0 1 1,-120 0 A1 1,0 1 1, 120 0L${vertex1[0].join(',')}`;
dr.path(path, 'none', 'currentColor', 4).sets({'stroke-dasharray': dr.elm.getTotalLength(), 'stroke-dashoffset': dr.elm.getTotalLength()});
dr.elm.onanimationend = () => {
dr.elm.setAttribute('fill', 'currentColor');
dr.elm.style.animation = 'rot 8s linear infinite var(--state)';
};
}
function loadJs(url, callback) {
var script = document.createElement('script');
script.charset = 'utf-8';
script.src = url;
script.onload = function() {
if (callback) callback();
};
document.head.appendChild(script);
}
</script> |