金志文--远走高飞
<style>#papa {
left: -290px;top:150px;
width: 1406px;
height: 884px;
background: lightblue url('https://xlaj.cn/assets/file/zp/20230705180547.gif') center/cover no-repeat;
box-shadow: 3px 3px 20px #000;
position: relative;
display: grid;
place-items: center;
overflow: hidden;
z-index: 1;
}
my-clock {
width: 180px;
height: 180px;
top:10%;
left: 80px;
border: 9px solid DimGray;
background: lightgray;
border-radius: 50%;
box-shadow: 0 0 8px black;
display: grid;
place-items: center;
position: absolute;
--ww: 180px;
--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: Olive;
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: 2px; background: DimGray; }
hand-pointer {
transform-origin: 50% 100%;
background: linear-gradient(snow, DimGray);
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">
</video><audio id="aud" src="https://wj.zp68.com/lxx/yunhua/2023/03/15/yzgf.mp3" 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%,DimGray 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: 180px;height: 180px;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%,.75),hsla(80,55%,40%,.75));
top: 89%;
color: snow;
`,
player_css: `
--bg: linear-gradient(Gold,Khaki,Maroon);
width: 60px;
height: 60px;
top: 70%;
left: 1090px;
filter: drop-shadow(1px 2px 0 DimGray) drop-shadow(-1px -1px 0 Gainsboro);
`,
btn_css: '--btnColor: transparent; --btnBg: none; bottom: 10px; left: 10px;',
});
})();
</script>
<br><br><br><br><br><br><br><br><br><br>
1406的居中是 -290 好听好看,金志文还这么年轻 这个画面感有动有静,时钟效果不错,背景视频也是出彩
页:
[1]