装拆一念间
<style>#papa { left: -214px; width: 1024px; height: 640px; display: flex; justify-content: center; background: #000 url('https://638183.freep.cn/638183/Pic/38/101.jpg') no-repeat center/cover; perspective: 2000px; box-shadow: 4px 4px 24px #000; font-size: 16px; position: relative; }
#papa h2 { position: absolute; margin-top: 20px; font: bold 30px / 30px sans-serif; color: #222; text-shadow: 1px 2px 3px #aaa; }
#wrapper { position: absolute; top: calc(50% - 150px); width: 300px; height: 300px; transform-style: preserve-3d; transform: rotateX(-15deg) rotateY(-20deg); animation: rot1 4s linear forwards; }
#ball { position: absolute; left: 40%; top: 50%; width: 50%; height: 50%; border-radius: 50%; transform: translateZ(100px); background: linear-gradient(tan, red); opacity: .75; }
.panel { position: absolute; width: 300px; height: 300px; opacity: .75; }
#btnPlay { position: absolute; left: 40px; bottom: 40px; outline: none; cursor: pointer; }
#yyMsg { position: absolute; left: 110px; bottom: 40px; color: silver; }
#btnBegin { position: absolute; bottom: 40px; outline: none; cursor: pointer; }
#mkMsg { position: absolute; left: calc(50% + 35px); bottom: 40px; }
</style>
<div id="papa">
<h2>装拆一念间</h2>
<div id="wrapper"><span id="ball"></span></div>
<input id="btnPlay" type="button" value="音乐停" />
<span id="yyMsg">背景音乐 - 空山新雨</span>
<input id="btnBegin" type="button" value="暂停" />
<span id="mkMsg">waiting ...</span>
</div>
<script>
let idx = 0, step = 1, flag = true, aud = new Audio();
aud.src = 'https://music.163.com/song/media/outer/url?id=1948007070.mp3';
aud.loop = true;
aud.autoplay = true;
let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min;
let panelAr = [
' translateY(150px) rotateX(90deg)', //下
'translateZ(-150px)', //后
'translateZ(150px)', //前
'translateX(-150px) rotateY(90deg)', //左
'translateX(150px) rotateY(90deg)', //右
'translateY(-150px) rotateX(90deg)', //上
];
panelAr.forEach((item,key) => {
let span = document.createElement('span');
span.className = 'panel';
span.style.transform = panelAr;
span.style.display = 'none';
wrapper.appendChild(span);
});
let spanAr = Array.from(document.querySelectorAll('.panel'));
spanAr.splice(1,0,ball);
let TT = setInterval(mkBox, 2000);
btnBegin.onclick = () => {
flag = !flag;
flag ? (TT = setInterval(mkBox, 2000), btnBegin.value = '暂停') : (clearInterval(TT), btnBegin.value = '继续');
}
btnPlay.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing', () => btnPlay.value = '音乐停');
aud.addEventListener('pause', () => btnPlay.value = '音乐放');
function mkBox() {
step > 0 ? (spanAr.style.display = 'block', mkMsg.innerText = '装') : (spanAr.style.display = 'none', mkMsg.innerText = '拆');
spanAr.style.background = `rgba(${num(0,255)}, ${num(0,255)}, ${num(0,255)},.95)`;
idx += step;
if(idx > spanAr.length - 1 || idx < 0) {
step = -step;
idx += step;
}
}
</script>
哈哈哈,图图上的按钮罢工了,鼠标指挥不了 等会,再来看{:4_203:} 浣溪沙 发表于 2022-7-30 08:53
哈哈哈,图图上的按钮罢工了,鼠标指挥不了
鼠标要送修了{:5_117:}
看看你用的什么浏览器 这个又是一个新制作,真漂亮。{:4_199:} 加林森 发表于 2022-7-30 09:28
这个又是一个新制作,真漂亮。
队长早啊 马黑黑 发表于 2022-7-30 09:30
队长早啊
老黑上午好!{:4_190:} 加林森 发表于 2022-7-30 09:31
老黑上午好!
{:4_180:} 马黑黑 发表于 2022-7-30 09:09
鼠标要送修了
看看你用的什么浏览器
现在有了,可以装成正方体,可以开关音乐
制作太神奇了{:4_178:} 马黑黑 发表于 2022-7-30 09:40
谢茶!我跟到学习制作了一个出来。{:4_189:} 加林森 发表于 2022-7-30 09:43
谢茶!我跟到学习制作了一个出来。
你的速度也太快了,厉害厉害 浣溪沙 发表于 2022-7-30 09:43
现在有了,可以装成正方体,可以开关音乐
制作太神奇了
前面为啥不行呢 马黑黑 发表于 2022-7-30 09:44
你的速度也太快了,厉害厉害
{:5_102:} 加林森 发表于 2022-7-30 09:48
{:4_199:} 马黑黑 发表于 2022-7-30 09:55
{:5_108:} 自动装拆,真有意思。黑黑朋友真行!
{:4_199:} 梦油 发表于 2022-7-30 11:00
自动装拆,真有意思。黑黑朋友真行!
{:4_180:} 无所不能{:4_199:} 樵歌 发表于 2022-7-30 11:20
无所不能
但不是强拆哈,俺不是城管{:4_170:} 第二遍装拆时,颜色还会变化的,如此装装拆拆,色彩变化无穷,好有趣的制作{:4_199:}