小辣椒 发表于 2026-8-14 21:10

光为你亮 (套用学习黑黑银河轨道 播放器效果)


<meta charset="UTF-8">
<style>
    @import 'https://638183.freep.cn/638183/web/api/audioplayer.css';

    .pa {
      top:70px;--offsetX: 81px;
      color: lightblue;
      perspective: 1000px;
      background-repeat: no-repeat;
      background-position: center;
      background-size: cover;
      will-change: background-image;
    }
    .pa.bg-dynamic {
      background-image: url('https://xlaj.cn/upfile/2025/11/29/9.gif');
    }
    .pa.bg-static {
      background-image: url('https://wj.zp68.com/lxx/yunhua/2026/08/13/9.jpg');
    }

    .son { position: absolute; inset: 0; transform-style: preserve-3d; }
    .player { width: 480px; bottom: 10px; }
    .btnFs { top: 25px;left: 20px; }
   
    #lyrics-container {
      position: absolute;
      top: 90%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 90%;
      text-align: center;
      z-index: 10;
      pointer-events: none;
    }
    #current-lyric {
      font-size: 32px;
      font-weight: bold;
      letter-spacing: 6px;
      color: rgba(255, 255, 255, 0.7);
      text-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
      -webkit-mask-image: linear-gradient(to right, #000 0%, #000 0%, transparent 0%);
                mask-image: linear-gradient(to right, #000 0%, #000 0%, transparent 0%);
      -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
      transition: none;
    }

    .mpic { width: 80px; height: 80px; offset-path: ellipse(30% 20% at 50% 30%); cursor: pointer; filter: drop-shadow(2px 2px 30px white); animation: offset-distance 15s linear var(--delay) infinite var(--state), move 50s linear infinite alternate var(--state); --delay: 0s; }
    .mpic:nth-of-type(2) { --delay: -3s; }
    .mpic:nth-of-type(3) { --delay: -6s; }
    .mpic:nth-of-type(4) { --delay: -9s; }
    .mpic:nth-of-type(5) { --delay: -12s; }
    @keyframes move {
      from { transform: translateZ(-3000px); }
      to { transform: translateZ(0); }
    }
</style>

<div id="pa" class="pa bg-dynamic">
    <video class="pd-vid" src=" " autoplay loop muted playsinline></video>

    <div id="lyrics-container">
      <div id="current-lyric">光为你亮</div>
    </div>

    <div class="son">
      <img class="mpic" src="https://wj.zp68.com/lxx/yunhua/2026/08/13/pp.png" alt="" />
      <img class="mpic" src="https://wj.zp68.com/lxx/yunhua/2026/08/13/pp.png" alt="" />
      <img class="mpic" src="https://wj.zp68.com/lxx/yunhua/2026/08/13/pp.png" alt="" />
      <img class="mpic" src="https://wj.zp68.com/lxx/yunhua/2026/08/13/pp.png" alt="" />
      <img class="mpic" src="https://wj.zp68.com/lxx/yunhua/2026/08/13/pp.png" alt="" />
    </div>
</div>

<script>
var lrcText = `
光为你亮 -- 致敬孙颖莎
原创作者:西安杰曦
灯光掠过球拍的锋芒
汗水滴落在追梦路上
每一次挥拍都带着倔强
你眼里的光从未熄灭半分亮
输赢不过是沿途风光
我们在乎的是你模样
不必把遗憾扛在肩膀上
健康快乐才是心底最深的向往
莎莎呀我们永远在身旁
无关成败只为你鼓掌
你那不服输的模样多滚烫
致敬短暂蛰伏是为了更高飞翔
致敬为国拼搏的世界冠军孙颖莎
偶尔的风雨打湿翅膀
歇一歇再飞也无妨
积蓄的力量终会破土生长
下一次登场必定绽放更耀眼的光
莎莎呀我们永远在身旁
无关成败只为你鼓掌
你那不服输的模样多滚烫
短暂蛰伏是为了更高飞翔
感谢西安杰曦分享
愿风为你导航光为你亮
往后每段旅程都顺畅明亮
我们的爱永远为你滚烫
谢谢欣赏

`;
var LRC_OFFSET = 3.05;
var staticImg = new Image();
staticImg.src = 'https://wj.zp68.com/lxx/yunhua/2026/08/13/9.jpg';
var dynamicImg = new Image();
dynamicImg.src = 'https://xlaj.cn/upfile/2025/11/29/9.gif';

function parseLrc(text) {
    var lines = text.trim().split('\n');
    var result = [];
    var timeRe = /\[(\d+):(\d+)\.(\d+)\]/;
    lines.forEach(function(line) {
      var m = line.match(timeRe);
      if (m) {
            var t = +m*60 + +m + +m/100;
            var txt = line.replace(timeRe, '').trim();
            if (txt) result.push({ time: t, text: txt });
      }
    });
    for (var i = 0; i < result.length; i++) {
      result.end = (i + 1 < result.length) ? result.time + 5.0 : result.time + 4;
    }
    return result;
}
var lrcData = parseLrc(lrcText);
var lyricEl = document.getElementById('current-lyric');
var currentLine = -1;
var rafId = null;
var audioEl = null;
var isPlaying = false;
var isFrozen = false;
var paEl = document.getElementById('pa');
var videoEl = document.querySelector('.pd-vid');
var mpicEls = document.querySelectorAll('.mpic');

function setMask(percent) {
    var p = Math.max(0, Math.min(100, percent));
    var grad = `linear-gradient(to right, #000 0%, #000 ${p}%, transparent ${p}%)`;
    lyricEl.style.webkitMaskImage = grad;
    lyricEl.style.maskImage = grad;
}

function renderLine(idx) {
    if (idx === currentLine) return;
    currentLine = idx;
    var line = lrcData;
    if (!line) return;
    lyricEl.textContent = line.text;
    setMask(0);
}
function freezeAll() {
    isFrozen = true;
    paEl.classList.remove('bg-dynamic');
    paEl.classList.add('bg-static');
    if (audioEl && !audioEl.paused) audioEl.pause();
    mpicEls.forEach(img => img.style.animationPlayState = 'paused');
    if (videoEl) {
      videoEl.pause();
      videoEl.style.opacity = '0';
    }
    if (rafId) {
      cancelAnimationFrame(rafId);
      rafId = null;
    }
}
function unfreezeAll() {
    isFrozen = false;
    paEl.classList.remove('bg-static');
    paEl.classList.add('bg-dynamic');
    mpicEls.forEach(img => img.style.animationPlayState = 'running');
    if (videoEl) {
      videoEl.play();
      videoEl.style.opacity = '1';
    }
    if (!rafId) rafId = requestAnimationFrame(tick);
    if (audioEl && audioEl.paused) audioEl.play().catch(()=>{});
}

function tick() {
    if (audioEl && !isFrozen) {
      var t = audioEl.currentTime + LRC_OFFSET;
      if (isPlaying) {
            var idx = 0;
            for (var i = 0; i < lrcData.length; i++) {
                if (t >= lrcData.time + 2.0) idx = i;
            }
            renderLine(idx);
            var line = lrcData;
            if (line) {
                var dur = Math.max(line.end - line.time, 0.01);
                var p = ((t - line.time) / dur) * 100;
                setMask(p);
            }
      }
    }
    rafId = requestAnimationFrame(tick);
}
function loadJs(url, callback) {
    var s = document.createElement('script');
    s.charset = 'utf-8';
    s.src = url;
    s.onload = function() { callback && callback(); };
    document.head.appendChild(s);
}

loadJs('https://638183.freep.cn/638183/web/api/audioplayer.min.js?v1', function() {
    var pics = document.querySelectorAll('.mpic');
    var aud = new AudPlayer({
      pa: '.pa',
      urls: [['https://xlaj.cn/upfile/2025/11/29/01.mp3', '光为你亮']],
      btns: [].slice.call(pics),
    });

    function bind(el) {
      audioEl = el;
      el.addEventListener('play', () => isPlaying = true);
      el.addEventListener('pause', () => { if (!isFrozen) isPlaying = false; });
      el.addEventListener('ended', () => {
            isPlaying = false;
            lyricEl.textContent = '谢谢欣赏';
            setMask(100);
      });
      if (!rafId) rafId = requestAnimationFrame(tick);
    }

    if (aud && aud.aud) {
      bind(aud.aud);
    } else {
      var tryCount = 0;
      var timer = setInterval(function() {
            var el = document.querySelector('.pa audio');
            if (el) { clearInterval(timer); bind(el); }
            if (++tryCount > 100) clearInterval(timer);
      }, 100);
    }
});

document.body.addEventListener('click', function() {
    if (!audioEl) return;
    isFrozen ? unfreezeAll() : freezeAll();
});
</script>

小辣椒 发表于 2026-8-14 21:14

@马黑黑

黑黑看见你这些小圆球,立马想到了乒乓球,想到乒乓球就想到这个图图,立马套用玩一次,小辣椒把乒乓球的放大时间修改了,速度快了许多{:4_189:}

这个以前做的是动图,小辣椒加了一键停止背景动图,加了歌词


小辣椒 发表于 2026-8-14 21:14

感谢黑黑源码分享{:4_187:}

玫瑰 发表于 2026-8-14 21:18

很有创意,制作精彩。

小辣椒 发表于 2026-8-14 21:20

玫瑰 发表于 2026-8-14 21:18
很有创意,制作精彩。

问好玫瑰,谢谢欣赏{:4_171:}

杨帆 发表于 2026-8-14 21:25

设计新颖,效果靓丽,谢谢小辣椒精彩分享{:4_187:}

玫瑰 发表于 2026-8-14 21:25

小辣椒 发表于 2026-8-14 21:20
问好玫瑰,谢谢欣赏

他是以前效果吗?

玫瑰 发表于 2026-8-14 21:26

好有动感。

偶然~ 发表于 2026-8-14 21:33

来欣赏小辣椒的精品佳作,辛苦了,祝你健康快乐

偶然~ 发表于 2026-8-14 21:34

建议吧那5歌球拿开,有点不符合逻辑

马黑黑 发表于 2026-8-14 21:40

小辣椒 发表于 2026-8-14 21:14
@马黑黑

黑黑看见你这些小圆球,立马想到了乒乓球,想到乒乓球就想到这个图图,立马套用玩一次,小辣椒 ...

你这是多种代码混合在一起使用了。其中的这一段:

document.body.addEventListener('click', function() {
    if (!audioEl) return;
    isFrozen ? unfreezeAll() : freezeAll();
});

点击页面的body区域会联动 控制音视频

雨季工作室 发表于 2026-8-15 05:28

谢谢辣椒老师精彩分享。

梦江南 发表于 2026-8-15 08:29

好创意!这是对乒乓球爱好才会想出这种效果来。{:4_187:}

梦江南 发表于 2026-8-15 08:30

动感十足,欣赏点赞!{:4_204:}

小文 发表于 2026-8-15 17:17

喜欢

小辣椒 发表于 2026-8-17 22:37

杨帆 发表于 2026-8-14 21:25
设计新颖,效果靓丽,谢谢小辣椒精彩分享

问好杨帆,谢谢欣赏{:4_187:}

小辣椒 发表于 2026-8-17 22:39

玫瑰 发表于 2026-8-14 21:25
他是以前效果吗?

是的,现成的动图加了黑黑老师的新的效果完成一个作业。

光为你亮   歌曲原创:西安杰曦
https://www.huachaowang.com/forum.php?mod=viewthread&tid=88457&fromuid=4275
(出处: 花潮论坛)

小辣椒 发表于 2026-8-17 22:39

偶然~ 发表于 2026-8-14 21:33
来欣赏小辣椒的精品佳作,辛苦了,祝你健康快乐

谢谢偶然的支持

小辣椒 发表于 2026-8-17 22:41

偶然~ 发表于 2026-8-14 21:34
建议吧那5歌球拿开,有点不符合逻辑

哈哈~~~小辣椒偷懒用了以前的动图,就是为加上黑黑老师的五个小球的新教程,这个是作业

偶然~ 发表于 2026-8-17 22:42

小辣椒 发表于 2026-8-17 22:39
谢谢偶然的支持

提醒牛郎织女:视频通话解相思,何苦年年等鹊桥?祝小辣椒网络永不卡!
页: [1] 2 3
查看完整版本: 光为你亮 (套用学习黑黑银河轨道 播放器效果)