清风度流年
<style>
@import 'https://638183.freep.cn/638183/web/tz/tz.v4.css';
/* 七彩文字高亮样式 */
::highlight(c1) { color: red; }
::highlight(c2) { color: orange; }
::highlight(c3) { color: magenta; }
::highlight(c4) { color: green; }
::highlight(c5) { color: teal; }
::highlight(c6) { color: blue; }
::highlight(c7) { color: purple; }
.pa {
--offsetX: 60px;
--bg: url('https://ff.xiaoqiaodali.top:5401/i/2026/06/11/6a2a9c4fee909.gif') no-repeat center/cover;
--ma-size: 5%;
width: 1300px;
height: 731px;
position: relative;
overflow: hidden;
}
.pa *, .pa *::before, .pa *::after {
content: none !important;
}
/* 歌词容器 */
#custom-lrc-container {
position: absolute;
bottom: 15px;
left: 0;
width: 100%;
text-align: center;
z-index: 9999;
pointer-events: none;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
}
/* 歌词样式 - 描边改为白色 */
.lrc-line {
position: absolute;
left: 50%;
transform: translateX(-50%);
white-space: nowrap;
color: #fefefe;
font-size: 28px;
font-family: "方正兰亭粗黑_GBK", "LiSu", serif;
font-weight: bold; /* 字体加粗 */
/* 原黑色描边 → 改为白色描边 */
text-shadow: 1px 1px 2px #fff, -1px -1px 2px #fff, 1px -1px 2px #fff, -1px 1px 2px #fff, 0 0 12px rgba(255,255,255,0.9);
opacity: 0;
transition: opacity 0.5s ease, transform 0.5s ease;
margin: 0;
top: 0;
}
.lrc-line.active {
opacity: 1;
transform: translateX(-50%) scale(1.1);
z-index: 10;
}
</style>
<div class="pa">
<div id="custom-lrc-container"></div>
</div>
<script type="module">
import TZ from 'https://638183.freep.cn/638183/web/tz/tz.v4.js';
const tz = TZ.TZ('pa');
tz.add('audio', '', '', { src: 'https://od.lk/s/NDNfNDY3MzM5NDJf/%E6%B8%85%E9%A3%8E%E5%BA%A6%E6%B5%81%E5%B9%B4.mp3' });
tz.add('video', '', 'pd-vid', {src: 'http://cccimg.com/view.php/30d85f08f6e84acaa27e7201a2f69eba.mp4'}).style('opacity: 0.2;');
tz.add('img', '', 'ma', {
src: 'https://ff.xiaoqiaodali.top:5401/i/2026/06/07/6a2551166381c.png'
})
.style('right: 40px; bottom: 70px;')
.playmp3();
tz.bgprog().style('bottom: 8px; color: #fefefe; width: 400px;');
tz.fs().style('left: 20px; top: 20px;');
const lrcString = `
清风度流年
演唱:闲云野鹤
制作:霜染枫丹
经过风雨长巷
看过世事薄凉
心随云起云落不慌不忙
放下旧年痴念
告别昨日惆怅
一怀清风入怀自由晴朗
踏遍山河过往
悟透人间寻常
得失皆是寻常 不必思量
漫随流年前走静赏岁月风光
一半清醒 一半温柔坦荡
且惜今朝不问来日短长
风月无恙随心自在闯荡
看淡浮尘
不问是非过往,
心向暖阳 余生皆是晴朗
笑对今朝
放下所有捆绑
山水相伴从容笑对沧桑
世事多变 守好心底善良
洒脱而行 不负人间一趟
`;
// 注册七彩高亮
let hl_ar = [];
['c1','c2','c3','c4','c5','c6','c7'].forEach(c => {
const hl = new Highlight();
hl_ar.push(hl);
CSS.highlights.set(c, hl);
});
// 给单个元素上色
function colorizeText(element) {
const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);
let node;
while (node = walker.nextNode()) {
for (let i = 0; i < node.textContent.length; i++) {
const range = new Range();
range.setStart(node, i);
range.setEnd(node, i + 1);
const idx = Math.floor(Math.random() * hl_ar.length);
hl_ar.add(range);
}
}
}
function initCustomLrc(lrcText) {
const container = document.getElementById('custom-lrc-container');
const lines = [];
const lineRegex = /\[(\d{2}):(\d{2})\.(\d{2,3})\](.*)/;
const rawLines = lrcText.split('\n');
rawLines.forEach(text => {
const match = text.match(lineRegex);
if (match) {
const minutes = parseInt(match);
const seconds = parseInt(match);
const milliseconds = parseInt(match);
const time = minutes * 60 + seconds + milliseconds / 1000;
let content = match.trim();
content = content.replace(/&#\d+;/g, '').trim();
if (content) {
lines.push({ time, content, element: null });
}
}
});
lines.forEach((line) => {
const div = document.createElement('div');
div.className = 'lrc-line';
div.textContent = line.content;
container.appendChild(div);
line.element = div;
// 给这句歌词上色
colorizeText(div);
});
const audio = document.querySelector('.pa audio');
if (audio) {
audio.addEventListener('timeupdate', () => {
const currentTime = audio.currentTime;
let activeIndex = -1;
for (let i = 0; i < lines.length; i++) {
if (currentTime >= lines.time) {
activeIndex = i;
} else {
break;
}
}
lines.forEach((line, idx) => {
if (idx === activeIndex) {
line.element.classList.add('active');
} else {
line.element.classList.remove('active');
}
});
});
audio.addEventListener('ended', () => {
lines.forEach(line => line.element.classList.remove('active'));
});
}
}
setTimeout(() => {
const audioEl = document.querySelector('.pa audio');
if(audioEl) {
initCustomLrc(lrcString);
} else {
const observer = new MutationObserver(() => {
const aud = document.querySelector('.pa audio');
if(aud) {
initCustomLrc(lrcString);
observer.disconnect();
}
});
observer.observe(document.querySelector('.pa'), { childList: true, subtree: true });
}
}, 500);
</script> 好听的歌,好看的画面,欣赏点赞。晚上好!{:4_187:} 欣赏枫丹老师好制作,不知为何我这没声音呢 梦江南 发表于 2026-6-11 19:58
好听的歌,好看的画面,欣赏点赞。晚上好!
感谢梦江南的支持鼓励,晚上好~~{:4_204:}{:4_190:}
杨帆 发表于 2026-6-11 20:05
欣赏枫丹老师好制作,不知为何我这没声音呢
扬帆晚上好~~首先感谢您的支持,我听声音正常。是外网的链接,您是否系统设置了不允许播放{:4_204:}{:4_190:}
https://od.lk/s/NDNfNDY3MzM5NDJf/%E6%B8%85%E9%A3%8E%E5%BA%A6%E6%B5%81%E5%B9%B4.mp3
霜染枫丹 发表于 2026-6-11 20:09
扬帆晚上好~~首先感谢您的支持,我听声音正常。是外网的链接,您是否系统设置了不允许播放{:4_1 ...
这个可以听到,只是加载慢了一些 https://p3-tt.byteimg.com/origin/ce00068c4574781848?from=pc 也曾年轻 发表于 2026-6-11 20:17
感谢也曾年轻的鼓励,晚上好~~{:4_204:}{:4_190:}
黑白的韵味,是永远的主题,加上楼主的写真,相辅相成!赞!!!{:4_204:} 射天狼 发表于 2026-6-11 20:31
黑白的韵味,是永远的主题,加上楼主的写真,相辅相成!赞!!!
欢迎射天狼,晚上好~~
很高兴有您的鼓励支持,我尝试着做了这个视频,一开始用了古装,感觉不算好,太遥远,就做成了现在这个样子。得到支持很荣幸,祝您夏安~~{:4_204:}{:4_190:}
霜染枫丹 发表于 2026-6-11 20:36
欢迎射天狼,晚上好~~
很高兴有您的鼓励支持,我尝试着做了这个视频,一开始用了古装,感觉不算好,太 ...
古稀之人仍然精神抖擞,踏山河,颂美好,为您点赞! 射天狼 发表于 2026-6-11 20:40
古稀之人仍然精神抖擞,踏山河,颂美好,为您点赞!
我就是贪玩,有时间就想跑出去转一圈。谢谢您的鼓励,祝您吉祥快乐~~{:4_190:}{:4_188:}{:4_187:}
这样一路游览一路采撷美景的做法,真洒脱飘逸,很有意义的人生。
欣赏枫丹好帖{:4_187:} 欣赏点赞!{:4_178:} 红影 发表于 2026-6-11 22:04
这样一路游览一路采撷美景的做法,真洒脱飘逸,很有意义的人生。
欣赏枫丹好帖
红影晚上好~~
户外行摄挺好玩的,当年在摄苑网,网友再论坛上约好,定下集合的时间地点就一起开始拍摄了。我自己也走了一些,信马由缰的瞎转,提前做好攻略,预定好酒店,玩起来就不想回家{:4_173:}{:4_204:}{:4_190:}
魏淑芬 发表于 2026-6-12 13:29
欣赏点赞!
谢谢魏淑芬的支持,晚上好~~{:4_204:}{:4_190:}
页:
[1]