光辉岁月(学习黑师《花潮完美时钟》代码效果)
本帖最后由 南无月 于 2023-6-1 21:36 编辑 <br /><br /><style>#papa {
margin: 0 0 0 calc(50% - 593px);
width: 1024px;
height: 640px;
background: lightblue url('https://s1.ax1x.com/2023/06/01/p9zK3Hx.jpg') center/cover no-repeat;
box-shadow: 3px 3px 20px #000;
position: relative;
display: grid;
place-items: center;
overflow: hidden;
z-index: 1;
}
#vid {
position: absolute;
width: 1400px;
height: 100%;
border-radius: 2%;
opacity: .76;
object-fit: cover;
pointer-events: none;
mix-blend-mode: screen;
}
my-clock {
width: 200px;
height: 200px;
top:25%;
border: 10px solid SlateGray;
background: lightgray;
border-radius: 50%;
box-shadow: 0 0 8px black;
display: grid;
place-items: center;
position: absolute;
--ww: 200px;
--num_ww: 26px;
--rr: calc((var(--ww) - var(--num_ww)) / 2);
}
my-clock::before, my-clock::after { position: absolute; content: ''; }
my-clock::before {
width: 16px;
height: 16px;
border-radius: 50%;
background: SlateGray;
z-index: 99;
}
my-clock::after { content: 'HUA CHAO'; top: 65%; color: rgba(0,0,0,.5); }
hand-pointer, kedu-num, kedu-sec { position: absolute; display: block; }
kedu-number {
position: absolute;
width: var(--num_ww);
height: var(--num_ww);
font: normal 20px / var(--num_ww) Arial, sans-serif;
text-shadow: 1px 1px 2px black;
text-align: center;
color: snow;
left: calc(var(--rr) + var(--rr) * var(--cos));
top: calc(var(--rr) + var(--rr) * var(--sin));
--cos: cos(var(--deg));
--sin: sin(var(--deg));
}
kedu-sec { width: 8px; height: 4px; background: SlateGray; }
hand-pointer {
transform-origin: 50% 100%;
background: linear-gradient(snow, SlateGray);
width: var(--hand_ww);
height: calc(var(--ww) / 2 - var(--hand_hh));
top: var(--hand_hh);
animation: rot var(--duration) var(--delay) infinite linear;
}
@keyframes rot { to {transform: rotate(1turn); } }
</style>
<div id="papa"><my-clock id="clock"></my-clock><video id="vid" src="https://img.tukuppt.com/video_show/7165162/00/17/65/5ecb8fa5f0765.mp4" autoplay="" loop="" muted=""></video><audio id="aud" src="https://music.163.com/song/media/outer/url?id=346576" autoplay="" loop=""></audio></div>
<script>
let kedu_ar = , hand_ar = [,,];
let now = new Date();
let secs = -1 * now.getSeconds(), mins = -60 * now.getMinutes(), hrs = -3600 * (now.getHours() % 12) + mins;
let tt_ar = ;
kedu_ar.forEach((item,key) => {
let ele = document.createElement('kedu-number');
ele.innerText = key > 0 ? key : 12;
ele.style.setProperty('--deg', kedu_ar + 'deg');
clock.appendChild(ele);
});
Array.from({length: 60}).forEach((item,key) => {
let ele = document.createElement('kedu-sec');
ele.style.transform = `rotate(${6 * key}deg) translate(${clock.offsetWidth / 2 - 10}px)`;
if(key % 5 === 0) ele.style.background = 'linear-gradient(to right,snow 50%,olive 0)';
clock.appendChild(ele);
});
hand_ar.forEach((item,key) => {
item.push(tt_ar);
let properties = [['--hand_ww','px'],['--hand_hh','px'],['--duration','s'],['--delay','s']];
let ele = document.createElement('hand-pointer');
ele.style.zIndex = key + 1;
properties.forEach((item1,key1) => ele.style.setProperty(properties, hand_ar + properties));
clock.appendChild(ele);
});
(function() {
(function(mkPlayer) {let defaults = {lrcAr: [,],ttAr: ['花潮', '论坛', 'LRC', '在线','HCP','Player'],lrc_css: 'top: 20px; left: 50%; transform: translateX(-50%);',player_css: 'bottom: 20px; left: calc(50% - 50px);',playerCode: `<style>#mplayer {--bg: linear-gradient(-20deg,lightblue,blue);position: absolute;width: 200px;height: 200px;cursor: pointer;filter: drop-shadow(10px 10px 20px hsla(0,0%,0%,.75));animation: rot 10s infinite linear;animation-play-state: paused;}#mplayer > span {position: absolute;width: 50%;height: 50%;border-radius: 0 100%;background: var(--bg);transform-origin: 98% 98%;}#btnMsg {--btnColor: white;--btnBg: #0089f0;position: absolute;color: var(--btnColor);background: var(--btnBg);opacity: 0;border: 2px solid var(--btnColor);border-radius: 8px;padding: 4px;transition: all .75s;cursor: pointer;z-index: 901;}#lrc {--motion: cover2;--tt: 1s;--state: running;--bg: linear-gradient(180deg, hsla(100, 10%, 50%, .75), hsla(100, 100%, 20%, .65));position: absolute;font: bold 2em sans-serif;color: hsl(100, 100%, 90%);white-space: pre;-webkit-background-clip: text;filter: drop-shadow(1px 1px 2px hsla(0, 100%, 0%, .85));z-index: 900;}#lrc::before {position: absolute;content: attr(data-lrc);width: 20%;height: 100%;color: transparent;overflow: hidden;white-space: pre;background: var(--bg);filter: inherit;-webkit-background-clip: text;animation: var(--motion) var(--tt) linear forwards;animation-play-state: var(--state);}@keyframes rot { to {transform: rotate(360deg); } }@keyframes cover1 { from { width: 0; } to { width: 100%; } }@keyframes cover2 { from { width: 0; } to { width: 100%; } }</style><div id="lrc"data-lrc="HCPlayer">HCPlayer</div><div id="mplayer"></div>
<span id="btnMsg"></span>`,};
let playCode = (user_config) => {let data = Object.assign({}, defaults, user_config);papa.innerHTML += data.playerCode;
mplayer.style.cssText += data.player_css;lrc.style.cssText += data.lrc_css;btnMsg.style.cssText += data.btn_css;
let mKey = 0,mFlag = true,fs = false,tnow = Date.now(),timerId;let total = data.total || 5;Array.from({length:total}).forEach( (el,k) => {el = document.createElement('span');el.style.transform = `rotate(${360/total*k}deg)`;
mplayer.appendChild(el);});
mplayer.onclick = () => aud.paused ? aud.play() : aud.pause();btnMsg.onclick = () => fs ? document.exitFullscreen()
: papa.requestFullscreen();
papa.onmousemove = (e) => {clearTimeout(timerId);btnMsg.style.opacity = '.95';timerId = setTimeout('btnMsg.style.opacity = "0"', 3000);};
document.addEventListener("fullscreenchange", () => {if (document.fullscreenElement !== null) {fs = true;btnMsg.innerText = '';}
else {fs = false;btnMsg.innerText = '';}});
aud.addEventListener('pause', () => mState());aud.addEventListener('play', () => mState());aud.addEventListener('seeked', () => calcKey());let mState = () => aud.paused ? (lrc.style.setProperty('--state', 'paused'), mplayer.style.animationPlayState = 'paused') : (lrc.style.setProperty('--state', 'running'), mplayer.style.animationPlayState = 'running');aud.addEventListener('timeupdate', () => {for (j = 0; j < data.lrcAr.length; j++) {if (aud.currentTime >= data.lrcAr) {if (mKey === j) showLrc(data.lrcAr);else continue;}}});let showLrc = (time) => {let name = mFlag ? 'cover1' : 'cover2';lrc.innerHTML = data.lrcAr;lrc.dataset.lrc = data.lrcAr.replace(/<br>/, 'n');lrc.style.setProperty('--motion', name);lrc.style.setProperty('--tt', time + 's');lrc.style.setProperty('--state', 'running');mKey += 1;mFlag = !mFlag;};let calcKey = () => {for (j = 0; j < data.lrcAr.length; j++) {if (aud.currentTime <= data.lrcAr) {mKey = j - 1;break;}}if (mKey < 0) mKey = 0;if (mKey > data.lrcAr.length - 1) mKey = data.lrcAr.length - 1;let time = data.lrcAr - (aud.currentTime - data.lrcAr);showLrc(time);};};mkPlayer.HCPlayer = playCode;})(this);
let lrcAr = [
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
];
HCPlayer({
lrcAr: lrcAr,
lrc_css:`
--bg: linear-gradient(hsla(80,55%,40%,.15),hsla(200,90%,45%,.7));
top: 89%;
color: snow;
`,
player_css: `
--bg: linear-gradient(DarkGray,Silver,Gainsboro);
width: 40px;
height: 40px;
top: 39%;
filter: drop-shadow(3px 5px 0 SlateGray) drop-shadow(-3px -3px 0 Gainsboro);
`,
btn_css: '--btnColor: transparent; --btnBg: none; bottom: 10px; left: 10px;',
});
})();
</script>
这个花潮时钟很漂亮,拿它做个贴子。@马黑黑 老师来瞧瞧 找歌的时候找的关键字是时间,后来碰到老歌,十分耐听,就用这首了{:4_173:} 好看好看 这个图景很壮观,色调也好看{:4_187:} 漂亮的时钟,音乐也好听{:4_187:} 月儿还把播放器按钮放到了时钟里,厉害。时钟功能颜色调得很适合背景{:4_199:} 视频也用得很点睛,月儿的制作好棒{:4_199:} 欣赏月儿的精彩制作{:4_178:} 光辉岁月是一首非常优秀的歌,配上楼主精心的设计,很完美。欣赏。 多么庄严神圣的画面!俺不禁以泪洗面,以手加额,顶礼膜拜。{:4_195:} 一斛珠 发表于 2023-6-1 19:02
好看好看
谢谢临帖支持哦{:4_187:} 千羽 发表于 2023-6-1 19:11
这个图景很壮观,色调也好看
{:4_187:}千羽夸了,开心 千羽 发表于 2023-6-1 19:12
漂亮的时钟,音乐也好听
经典音乐,十分好听 红影 发表于 2023-6-1 19:20
月儿还把播放器按钮放到了时钟里,厉害。时钟功能颜色调得很适合背景
试着放看看居然可以,意外之喜{:4_173:} 红影 发表于 2023-6-1 19:21
视频也用得很点睛,月儿的制作好棒
{:4_187:}谢谢影子鼓励 醉美水芙蓉 发表于 2023-6-1 19:41
欣赏月儿精心设计的音画!
{:4_173:}近来贴子有玄学的味道,如果好看都是凑巧 小辣椒 发表于 2023-6-1 21:35
欣赏月儿的精彩制作
感谢小辣椒支持鼓励{:4_187:} 马黑黑 发表于 2023-6-1 22:00
光辉岁月是一首非常优秀的歌,配上楼主精心的设计,很完美。欣赏。
优秀的花潮完美时钟,颜值的确很高。。喜欢。。