【菩萨蛮】回文词TO 朝云暮雨
<style>#beijing { margin: 80px 0 0 calc(50% - 593px); width: 1024px; height: 640px; background: lightblue url('https://pic.imgdb.cn/item/643a9c660d2dde577780ac68.jpg') center/cover no-repeat; box-shadow: 3px 3px 20px #000; overflow: hidden; user-select: none; position: relative; }
#mplayer { position: absolute; left: 342px; bottom: 40px; width: fit-content; height: fit-content; display: flex; align-items: center; gap: 8px; z-index: 9; }
#btnwrap { position: relative; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #ccc linear-gradient(to top right, rgba(255,0,0,.75), rgba(0,255,0,.75)); cursor: pointer; }
#btnwrap:hover { background: #000 linear-gradient(to top right, rgba(255,0,0,.75), rgba(0,255,0,.75)); }
#btnplay { width: 20px; height: 20px; background: #ccc; clip-path: polygon(0 0, 0% 100%, 100% 50%); }
#btnpause { width: 2px; height: 20px; border-style: solid; border-width: 0px 4px; border-color: transparent #eee; display: none; }
#prog { width: 200px; height: 2px; background: #ccc linear-gradient(to right,red,orange,green,tomato) no-repeat; background-size: 1px 2px; cursor: pointer; position: relative; }
#prog::before { position: absolute; content: ''; top: -7px; width: inherit; height: 15px; }
#prog:hover::before { background: rgba(0,200,200,.15); }
#tmsg { font: normal 16px sans-serif; color: #FDFDBD; }
#lrc { position: absolute; left:392px; bottom: 80px; font: bold 1.3em sans-serif; color: #8CB9FB; text-shadow: 1px 1px 2px #000; text-align: center; z-index: 8; }
#lrc:hover, #tmsg:hover { color: snow; }
.txt3d {
position: absolute; left: 692px; top: 180px;
width: 380px;
height: 280px;
line-height: 32px;
font-family: '微软雅黑', '黑体', sans-serif;
font-size: 1.6rem;
color: #8CB9FB;
letter-spacing: 4px;
text-shadow: 1px 1px rgba(206,225,253,0.8),2px 2px rgba(206,225,253,0.7),3px 3px rgba(206,225,253,0.6),4px 4px rgba(206,225,253,0.4);
}
</style>
<div id="beijing">
<div id="mplayer"><span id="btnwrap"><span id="btnplay"></span><span id="btnpause"></span></span><span id="prog"></span><span id="tmsg">00:00 | 00:00</span></div>
<div id="lrc">lrc歌词</div>
<p class ="txt3d">菩萨蛮TO朝云暮雨<br><br> 暮春伤别离津渡,<br> 渡津离别伤春暮。<br> 朝露滴潇潇,<br> 潇潇滴露朝。<br><br> 雨霁归静女,<br> 女静归霁雨。<br> 云幻梦惊人,<br> 人惊梦幻云。<br>
</div></div>
<script>
let lrcAr = [
['0.00','巫山归梦'],
['280.00','音阙诗听']
];
let aud = new Audio();
aud.src='https://music.163.com/song/media/outer/url?id=1996268501.mp3';
aud.autoplay = true;
aud.loop = true;
btnwrap.onclick = () => aud.paused ? aud.play() : aud.pause();
prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
aud.addEventListener('pause', () => btnstate());
aud.addEventListener('play',() => btnstate());
aud.addEventListener('timeupdate', () => {
prog.style.backgroundSize = prog.offsetWidth * aud.currentTime / aud.duration + 'px 2px';
tmsg.innerText = toMin(aud.duration) + ' | ' + toMin(aud.currentTime);
for(j=0; j<lrcAr.length; j++) {
if(aud.currentTime >= lrcAr) lrc.innerText = lrcAr;
}
});
let btnstate = () => aud.paused ? (btnplay.style.display = 'block', btnpause.style.display = 'none') : (btnplay.style.display = 'none', btnpause.style.display = 'block');
let toMin = (val) => {
if (!val) return '00:00';
val = Math.floor(val);
let min = parseInt(val / 60), sec = parseFloat(val % 60);
if(min < 10) min = '0' + min;
if(sec < 10) sec = '0' + sec;
return min + ':' + sec;
}
</script>
暮春伤别离津渡,渡津离别伤春暮。朝露滴潇潇,潇潇滴露朝。雨霁归静女, 女静归霁雨。云幻梦惊人,人惊梦幻云。
<style> #beijing{ margin: 80px 0 0 calc(50% - 593px); width: 1024px; height: 640px; background:lightblue url('https://pic.imgdb.cn/item/643a9c660d2dde577780ac68.jpg') center/cover no-repeat; box-shadow: 3px 3px 20px #000; overflow:hidden; user-select: none; position: relative; } #mplayer{ position: absolute; left: 342px; bottom: 40px; width: fit-content; height:fit-content; display: flex; align-items: center; gap: 8px; z-index: 9; } #btnwrap{ position: relative; width: 36px; height: 36px; display: grid; place-items:center; border-radius: 50%; background: #ccc linear-gradient(to top right,rgba(255,0,0,.75), rgba(0,255,0,.75)); cursor: pointer; } #btnwrap:hover{ background: #000 linear-gradient(to top right, rgba(255,0,0,.75),rgba(0,255,0,.75)); } #btnplay{ width: 20px; height: 20px; background: #ccc; clip-path: polygon(0 0, 0% 100%,100% 50%); } #btnpause{ width: 2px; height: 20px; border-style: solid; border-width: 0px 4px;border-color: transparent #eee; display: none; } #prog{ width: 200px; height: 2px; background: #ccc linear-gradient(toright,red,orange,green,tomato) no-repeat; background-size: 1px 2px; cursor:pointer; position: relative; } #prog::before{ position: absolute; content: ''; top: -7px; width: inherit; height: 15px; } #prog:hover::before{ background: rgba(0,200,200,.15); } #tmsg{ font: normal 16px sans-serif; color: #FDFDBD; } #lrc{ position: absolute; left:392px; bottom: 80px; font: bold 1.3em sans-serif;color: #8CB9FB; text-shadow: 1px 1px 2px #000; text-align: center; z-index: 8;} #lrc:hover,#tmsg:hover { color: snow; } .txt3d{ position:absolute; left: 692px; top: 180px; width:380px; height:280px; line-height:32px; font-family:'微软雅黑', '黑体', sans-serif; font-size:1.6rem; color:#8CB9FB; letter-spacing:4px; text-shadow:1px 1px rgba(206,225,253,0.8),2px 2px rgba(206,225,253,0.7),3px 3pxrgba(206,225,253,0.6),4px 4px rgba(206,225,253,0.4); } </style> <divid="beijing"> <divid="mplayer"><span id="btnwrap"><spanid="btnplay"></span><span id="btnpause"></span></span><spanid="prog"></span><span id="tmsg">00:00 |00:00</span></div> <divid="lrc">lrc歌词</div> <pclass ="txt3d">菩萨蛮TO朝云暮雨<br><br> 暮春伤别离津渡,<br> 渡津离别伤春暮。<br> 朝露滴潇潇,<br> 潇潇滴露朝。<br><br> 雨霁归静女,<br> 女静归霁雨。<br> 云幻梦惊人,<br> 人惊梦幻云。<br> </div></div> <script> letlrcAr = [ ['0.00','巫山归梦'], ['280.00','音阙诗听'] ]; letaud = new Audio(); aud.src='https://music.163.com/song/media/outer/url?id=1996268501.mp3'; aud.autoplay= true; aud.loop= true; btnwrap.onclick= () => aud.paused ? aud.play() : aud.pause(); prog.onclick= (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth; aud.addEventListener('pause',() => btnstate()); aud.addEventListener('play',()=> btnstate()); aud.addEventListener('timeupdate',() => { prog.style.backgroundSize= prog.offsetWidth * aud.currentTime / aud.duration + 'px 2px'; tmsg.innerText= toMin(aud.duration) + ' | ' + toMin(aud.currentTime); for(j=0;j<lrcAr.length; j++) { if(aud.currentTime>= lrcAr) lrc.innerText = lrcAr; } }); letbtnstate = () => aud.paused ? (btnplay.style.display = 'block',btnpause.style.display = 'none') : (btnplay.style.display= 'none', btnpause.style.display = 'block'); lettoMin = (val) => { if(!val) return '00:00'; val= Math.floor(val); letmin = parseInt(val / 60), sec = parseFloat(val % 60); if(min< 10) min = '0' + min; if(sec< 10) sec = '0' + sec; returnmin + ':' + sec; } </script>
欣赏樵歌的制作文笔 代码我整理了一下,主要是修正小错误、让右边的文本更易于阅读:
<style>#beijing {
margin: 80px 0 0 calc(50% - 593px);
width: 1024px;
height: 640px;
background: lightblue url('https://pic.imgdb.cn/item/643a9c660d2dde577780ac68.jpg') center/cover no-repeat;
box-shadow: 3px 3px 20px #000;
overflow: hidden;
user-select: none;
position: relative;
}
#mplayer {
position: absolute;
left: 342px;
bottom: 40px;
width: fit-content;
height: fit-content;
display: flex;
align-items: center;
gap: 8px;
z-index: 9;
}
#btnwrap {
position: relative;
width: 36px;
height: 36px;
display: grid;
place-items: center;
border-radius: 50%;
background: #ccc linear-gradient(to top right, rgba(255, 0, 0, .75), rgba(0, 255, 0, .75));
cursor: pointer;
}
#btnwrap:hover {
background: #000 linear-gradient(to top right, rgba(255, 0, 0, .75), rgba(0, 255, 0, .75));
}
#btnplay {
width: 20px;
height: 20px;
background: #ccc;
clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
#btnpause {
width: 2px;
height: 20px;
border-style: solid;
border-width: 0px 4px;
border-color: transparent #eee;
display: none;
}
#prog {
width: 200px;
height: 2px;
background: #ccc linear-gradient(to right, red, orange, green, tomato) no-repeat;
background-size: 1px 2px;
cursor: pointer;
position: relative;
}
#prog::before {
position: absolute;
content: '';
top: -7px;
width: inherit;
height: 15px;
}
#prog:hover::before {
background: rgba(0, 200, 200, .15);
}
#tmsg {
font: normal 16px sans-serif;
color: #FDFDBD;
}
#lrc {
position: absolute;
left: 392px;
bottom: 80px;
font: bold 1.3em sans-serif;
color: #8CB9FB;
text-shadow: 1px 1px 2px #000;
text-align: center;
z-index: 8;
}
#lrc:hover,
#tmsg:hover {
color: snow;
}
.txt3d {
position: absolute;
left: 692px;
top: 180px;
width: 380px;
height: 280px;
line-height: 32px;
font-family: '微软雅黑', '黑体', sans-serif;
font-size: 1.6rem;
color: #8CB9FB;
letter-spacing: 4px;
text-shadow: 1px 1px 2px #000;
}
</style>
<div id="beijing">
<div id="mplayer">
<span id="btnwrap">
<span id="btnplay"></span>
<span id="btnpause"></span>
</span>
<span id="prog"></span>
<span id="tmsg">00:00 | 00:00</span>
</div>
<div id="lrc">lrc歌词</div>
<p class ="txt3d">菩萨蛮TO朝云暮雨<br><br> 暮春伤别离津渡,<br> 渡津离别伤春暮。<br> 朝露滴潇潇,<br> 潇潇滴露朝。<br><br> 雨霁归静女,<br> 女静归霁雨。<br> 云幻梦惊人,<br> 人惊梦幻云。<br>
</div>
<script>
let lrcAr = [ ['0.00','巫山归梦'], ['280.00','音阙诗听'] ];
let aud = new Audio();
aud.src='https://music.163.com/song/media/outer/url?id=1996268501.mp3';
aud.autoplay = true;
aud.loop = true;
btnwrap.onclick = () => aud.paused ? aud.play() : aud.pause();
prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
aud.addEventListener('pause', () => btnstate());
aud.addEventListener('play',() => btnstate());
aud.addEventListener('timeupdate', () => {
prog.style.backgroundSize = prog.offsetWidth * aud.currentTime / aud.duration + 'px 2px';
tmsg.innerText = toMin(aud.duration) + ' | ' + toMin(aud.currentTime);
for(j=0; j<lrcAr.length; j++) { if(aud.currentTime >= lrcAr) lrc.innerText = lrcAr; } });
let btnstate = () => aud.paused ? (btnplay.style.display = 'block', btnpause.style.display = 'none') : (btnplay.style.display = 'none', btnpause.style.display = 'block');
let toMin = (val) => { if (!val) return '00:00'; val = Math.floor(val); let min = parseInt(val / 60), sec = parseFloat(val % 60); if(min < 10) min = '0' + min; if(sec < 10) sec = '0' + sec; return min + ':' + sec; };
</script>
樵歌老师的音画已经熟能生巧了,必须点赞送花花{:4_187:}{:4_199:} 樵歌 发表于 2023-4-15 21:11
暮春伤别离津渡,渡津离别伤春暮。朝露滴潇潇,潇潇滴露朝。雨霁归静女, 女静归霁雨。云幻梦惊人, ...
字字珠玑,樵歌老师神来之笔啊{:4_187:} 马黑黑 发表于 2023-4-15 22:18
代码我整理了一下,主要是修正小错误、让右边的文本更易于阅读:
看到黑黑的这个才发现,樵歌的代码里怎么类似div id= let 。。。btnstate =等等好多地方的空格都没了,给他代码的时候明明都有的,我还特地赶紧去查看了一下。这样居然也能帖子正常{:4_173:}
哈,到帖子里一看,原来如此。怪不得{:4_173:} 樵歌 发表于 2023-4-15 21:11
暮春伤别离津渡,渡津离别伤春暮。朝露滴潇潇,潇潇滴露朝。雨霁归静女, 女静归霁雨。云幻梦惊人, ...
师兄这个厉害了,不但嵌字,而且在固定位置上嵌字,更是增加了难度。在这样的难度下还能写成,而且这么优美,太厉害了{:4_199:} 天呀,天呀,你太太太厉害了吧。哈哈{:4_173:} 俺得拼命追。看能不能追上。哈000 樵歌 发表于 2023-4-15 21:11
暮春伤别离津渡,渡津离别伤春暮。朝露滴潇潇,潇潇滴露朝。雨霁归静女, 女静归霁雨。云幻梦惊人, ...
词得太好,不回文的难道,还有就是把内在的伤痕都勾画得淋漓尽致。你理解得真通透。{:4_204:} 朝云暮雨 发表于 2023-4-16 00:19
天呀,天呀,你太太太厉害了吧。哈哈
云儿见笑了,比起琴棋书画来,俺小巫终于见大巫了{:4_187:} 朝云暮雨 发表于 2023-4-16 00:20
俺得拼命追。看能不能追上。哈000
这话正好倒过来说,俺才是拍马难及。 朝云暮雨 发表于 2023-4-16 00:25
词得太好,不回文的难道,还有就是把内在的伤痕都勾画得淋漓尽致。你理解得真通透。
不小心触动云儿伤心处,实在无心之举,{:4_185:}走过那那片雾霭,前面就是山明水秀,一片朗朗晴天,{:4_183:} 马黑黑 发表于 2023-4-15 22:18
代码我整理了一下,主要是修正小错误、让右边的文本更易于阅读:
谢谢啦{:4_176:}也许是在代码上替换图图和音乐时把行打乱了,我有时看到后就自行“修改”了,可能问题就出现在这{:4_189:} 千羽 发表于 2023-4-15 23:01
樵歌老师的音画已经熟能生巧了,必须点赞送花花
还时老问题,抄作业不认真{:4_189:} 千羽 发表于 2023-4-15 23:04
字字珠玑,樵歌老师神来之笔啊
千羽经常谬赞,这次更是如此{:4_187:} 红影 发表于 2023-4-15 23:52
看到黑黑的这个才发现,樵歌的代码里怎么类似div id= let 。。。btnstate =等等好多地方的空格都没了,给 ...
不知道怎么搞的,我是把音乐和图图添加后,就复制贴 坛上了,居然没能出来,{:4_173:}