勿忘我
<style>#papa {
margin: 0 0 0 calc(50% - 593px);
display: grid;
place-items: center;
width: 1024px;
height: 640px;
background: gray url('https://638183.freep.cn/638183/t23/webp/wuwhwo.webp') no-repeat center/cover;
box-shadow: 8px 4px 20px hsla(0,0%,0%,.65);
overflow: hidden;
user-select: none;
position: relative;
perspective: 3000px;
z-index: 1;
}
</style>
<div id="papa"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=400690423.mp3" loop autoplay></audio>
<script >
(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 2.4em 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(180,55%,40%,.15),hsla(200,90%,45%,.7));
top: 20px;
left: 20px;
color: snow;
`,
player_css: `
--bg: linear-gradient(-95deg,lightblue,blue);
width: 160px;
height: 160px;
top: 50px;
filter: drop-shadow(3px 5px 0 yellow) drop-shadow(-3px -3px 0 gold);
`,
btn_css: '--btnColor: yellow; --btnBg: blue; bottom: 10px; left: 10px;',
});
})();
</script>
帖子代码
<style>
#papa {
margin: 0 0 0 calc(50% - 593px);
display: grid;
place-items: center;
width: 1024px;
height: 640px;
background: gray url('https://638183.freep.cn/638183/t23/webp/wuwhwo.webp') no-repeat center/cover;
box-shadow: 8px 4px 20px hsla(0,0%,0%,.65);
overflow: hidden;
user-select: none;
position: relative;
perspective: 3000px;
z-index: 1;
}
</style>
<div id="papa"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=400690423.mp3" loop autoplay></audio>
<script >
(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 2.4em 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(180,55%,40%,.15),hsla(200,90%,45%,.7));
top: 20px;
left: 20px;
color: snow;
`,
player_css: `
--bg: linear-gradient(-95deg,lightblue,blue);
width: 160px;
height: 160px;
top: 50px;
filter: drop-shadow(3px 5px 0 yellow) drop-shadow(-3px -3px 0 gold);
`,
btn_css: '--btnColor: yellow; --btnBg: blue; bottom: 10px; left: 10px;',
total: 5,
});
})();
</script>
和昨天的《立春》相比,插件多一个接口参数, totale: 5, ,叶片总数,建议零售价,哦不,建议的取值范围在 3 - 8 之间
祝你元宵节快乐! 梦油 发表于 2023-2-5 10:28
祝你元宵节快乐!
也一样祝你 醉美水芙蓉 发表于 2023-2-5 10:29
图片和播放器都非常漂亮!
感谢支持 欣赏老师佳作!
这个配色和勿忘我的花色非常搭配,好漂亮{:4_199:} 黑黑还留了接口,想设置几瓣花瓣都可以了,这个太赞了{:4_187:} 怎么会忘记你{:4_170:} 每天惦记你{:4_189:} 每天想着你 每天都会上来就是为了你{:4_170:} 你应该想想为什么这么惦记你{:4_170:} 都是你那代码惹的祸,每天有更新,每天想看看有什么新的会出来{:4_170:}