马术之夜 TO樵歌&清儿幽幽
<style>#papa {
margin: 80px 0 0 calc(50% - 681px);
width: 1200px;
height: 675px;
background: lightblue url('https://pic.imgdb.cn/item/640d6989f144a01007dc5adc.jpg') center/cover no-repeat;
box-shadow: 6px 3px 30px #000;
position: relative;
display: grid;
place-items: center;
z-index: 1; overflow: hidden;
--state: paused;
}
#pic {
position: absolute;
left: 20px; top:430px;
width: 140px;
height: 180px;z-index: 10;
background: url('https://pic.imgdb.cn/item/640d74c6f144a01007f0c624.png') no-repeat center/cover;
animation: tiao .6s infinite alternate var(--state);
}
#pic2 {
position: absolute;
right: 20px; top:430px;
width: 161px;
height: 180px;
transform: rotate(0deg);
transform-origin: 50% 100%;
background: url('https://pic.imgdb.cn/item/640d9240f144a010072107dc.png') no-repeat center/cover;
animation: zhuan .5s infinite alternatevar(--state);
}
.pic1 {
position: absolute;
right: 100px; top: -30px;
width: 236px;
height: 290px;
transform: rotate(30deg);
transform-origin: 80% 0;
background: url('https://pic.imgdb.cn/item/640d7a19f144a01007fa45de.png') no-repeat center/cover;
animation: zh 2.2s infinite alternate var(--state);
}
.mplayer {
width: 80px;
height: 80px;
border-radius: 50%;
background: lightblue;
box-shadow: 5px 5px 30px blue inset;
cursor: pointer;
animation: rot2d 8s infinite linear var(--state);
position: absolute;left:746px;top:286px;
transition: box-shadow .6s;
}
.mplayer::before, .mplayer::after {
position: absolute;
content: '';
top: -50px;
right: -50px;
bottom: -50px;
left: -50px;
border: 6px dotted snow;
border-radius: inherit;
transform: perspective(1000px) rotateY(45deg) rotateX(15deg);
animation: rot3d 10s infinite linear;
--angle: 360deg;
}
.mplayer::after {
top: -60px;
right: -60px;
bottom: -60px;
left: -60px;
--angle: -1080deg;
}
@keyframes rot2d {
to { transform: rotate(360deg); }
}
@keyframes rot3d {
to { transform: perspective(1000px) rotateY(45deg) rotateX(15deg) rotateZ(var(--angle)); }
}
@keyframes tiao { to {transform: translate(0px,-40px); } }
@keyframes zh { to { transform: rotate(-10deg); } }
@keyframes zhuan { to { transform: rotate(-5deg); } }
.mplayer:nth-of-type(2) {
width: 100px;
height: 100px;
border-radius: 50%;
background: lightblue;
box-shadow: 5px 5px 30px red inset;
cursor: pointer;
animation: rot2d 8s infinite linear var(--state);
position: absolute;left:396px;top:286px;
transition: box-shadow .6s;
}
#tit {
position: absolute;
right: 320px;
top: 0px;
background-image:url('https://pic.imgdb.cn/item/638deea8b1fccdcd36b985f3.gif'); background-size:cover;
width:600px; height:200px; font: bold 3.6em sans-serif;
text-align:center; line-height:200px; color:transparent;
-webkit-background-clip:text;
border:0px #FF4A20 solid; z-index: 10;
}
</style>
<div id="papa">
<div class="mplayer"></div><div class="mplayer"></div>
<div class="pic1"></div><div id="tit">马术之夜</div><div id="pic2"></div> <div id="pic"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=5242671" autoplay loop></audio>
<div style="position: absolute; left:-20px; top: 0px; opacity: 0.4; width:468px;">
<img alt="" src="https://pic.imgdb.cn/item/629978d309475431293aa763.gif"/></div>
</div>
<script>
(function() {
let mState = () => papa.style.setProperty('--state', aud.paused ? 'paused' : 'running');
let btns = document.querySelectorAll('.mplayer');
[...btns].forEach((item) => item.onclick = () => aud.paused ? aud.play() : aud.pause());
aud.addEventListener('play', () => mState());
aud.addEventListener('pause', () => mState());
})();
</script> 所谓马术者,马黑黑代码技术之简称。{:4_173:}
用新学的马术做个小帖送给师兄和清儿。感谢黑黑的代码。 春天是美丽的,阳春三月更美丽,祝福樵歌和清儿三月快乐{:4_187:}{:4_187:}@樵歌@清儿幽幽
呼叫@马黑黑为什么左边的一个小图不见了,在本地测试有的,发到论坛就不见了,我加了z-index: 也不行,查不出原因了。
排排坐,欢天喜地来看马戏表演{:4_173:} 舞台背景装饰的好漂亮啊,演员们的表演太精彩了,慢慢欣赏……{:4_187:} 红影 发表于 2023-3-12 17:55
呼叫@马黑黑为什么左边的一个小图不见了,在本地测试有的,发到论坛就不见了,我加了z-index: 也不行,查 ...
JS代码有错误。修正了一下,看看如下代码:
<style>
#papa {
margin: 80px 0 0 calc(50% - 681px);
width: 1200px;
height: 675px;
background: lightblue url('https://pic.imgdb.cn/item/640d6989f144a01007dc5adc.jpg') center/cover no-repeat;
box-shadow: 6px 3px 30px #000;
position: relative;
display: grid;
place-items: center;
z-index: 1; overflow: hidden;
--state: paused;
}
#pic {
position: absolute;
left: 20px;
top:430px;
width: 140px;
height: 180px;z-index: 10;
background: url('https://pic.imgdb.cn/item/640d74c6f144a01007f0c624.png') no-repeat center/cover;
animation: tiao .6s infinite alternate var(--state);
}
#pic2 {
position: absolute;
right: 20px; top:430px;
width: 161px;
height: 180px;
transform: rotate(0deg);
transform-origin: 50% 100%;
background: url('https://pic.imgdb.cn/item/640d9240f144a010072107dc.png') no-repeat center/cover;
animation: zhuan .5s infinite alternatevar(--state);
}
.pic1 {
position: absolute;
right: 100px;
top: -30px;
width: 236px;
height: 290px;
transform: rotate(30deg);
transform-origin: 80% 0;
background: url('https://pic.imgdb.cn/item/640d7a19f144a01007fa45de.png') no-repeat center/cover;
animation: zh 2.2s infinite alternate var(--state);
}
.mplayer {
width: 80px;
height: 80px;
border-radius: 50%;
background: lightblue;
box-shadow: 5px 5px 30px blue inset;
cursor: pointer;
animation: rot2d 8s infinite linear var(--state);
position: absolute;left:746px;top:286px;
transition: box-shadow .6s;
}
.mplayer::before, .mplayer::after {
position: absolute;
content: '';
top: -50px;
right: -50px;
bottom: -50px;
left: -50px;
border: 6px dotted snow;
border-radius: inherit;
transform: perspective(1000px) rotateY(45deg) rotateX(15deg);
animation: rot3d 10s infinite linear;
--angle: 360deg;
}
.mplayer::after {
top: -60px;
right: -60px;
bottom: -60px;
left: -60px;
--angle: -1080deg;
}
@keyframes rot2d {
to { transform: rotate(360deg); }
}
@keyframes rot3d {
to { transform: perspective(1000px) rotateY(45deg) rotateX(15deg) rotateZ(var(--angle)); }
}
@keyframes tiao { to { top: 360px; } }
@keyframes zh { to { transform: rotate(-10deg); } }
@keyframes zhuan { to { transform: rotate(-5deg); } }
.mplayer:nth-of-type(2) {
width: 100px;
height: 100px;
border-radius: 50%;
background: lightblue;
box-shadow: 5px 5px 30px red inset;
cursor: pointer;
animation: rot2d 8s infinite linear var(--state);
position: absolute;left:396px;top:286px;
transition: box-shadow .6s;
}
#tit {
position: absolute;
right: 320px;
top: 0px;
background-image:url('https://pic.imgdb.cn/item/638deea8b1fccdcd36b985f3.gif'); background-size:cover;
width:600px; height:200px; font: bold 3.6em sans-serif;
text-align:center; line-height:200px; color:transparent;
-webkit-background-clip:text;
border:0px #FF4A20 solid; z-index: 10;
}
</style>
<div id="papa">
<div class="mplayer"></div><div class="mplayer"></div>
<div class="pic1"></div><div id="tit">马术之夜</div><div id="pic2"></div> <div id="pic"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=5242671" autoplay loop></audio>
<div style="position: absolute; left:-20px; top: 0px; opacity: 0.4; width:468px;">
<img alt="" src="https://pic.imgdb.cn/item/629978d309475431293aa763.gif"/></div>
</div>
<script>
(function() {
(function(mkFS) {let setFullScreen = (user_set) => {let pa = user_set.pa;if(typeof(pa) !== 'object') return false;if(!user_set.set) user_set.set = 'color: snow; background: black; border: 2px solid snow; left: 40px; bottom: 40px;';btnMsg = document.createElement('span');btnMsg.style.cssText = `position: absolute; border-radius: 8px; padding: 4px; cursor: pointer; z-index:998; ${user_set.set}`;btnMsg.innerText = '全屏观赏';btnMsg.style.display = 'none';pa.appendChild(btnMsg);let timerId, fs = false;btnMsg.onclick = () => fs ? document.exitFullscreen() : pa.requestFullscreen();pa.addEventListener('mousemove', (e) => {clearTimeout(timerId);btnMsg.style.display = 'block';timerId = setTimeout('btnMsg.style.display = "none"', 3000);});document.addEventListener('fullscreenchange', () => {if (document.fullscreenElement !== null) {fs = true;btnMsg.innerText = '退出全屏';} else {fs = false;btnMsg.innerText = '全屏观赏';}});};mkFS.FS = setFullScreen;})(this);
let mState = () => papa.style.setProperty('--state', aud.paused ? 'paused' : 'running');
let btns = document.querySelectorAll('.mplayer');
[...btns].forEach((item) => item.onclick = () => aud.paused ? aud.play() : aud.pause());
aud.addEventListener('play', () => mState());
aud.addEventListener('pause', () => mState());
FS({pa: papa, set: 'color: snow; background: none; border: 2px solid snow; bottom: 20px;'});
})();
</script>
这个好玩的,技巧多多。 原来的作品,JS有两处错误:
① 全屏插件代码缺失,但又有调用全屏插件的相关语句。补上插件代码或取消调用代码即可;
② mplayer.addEventListener('click', () => aud.paused ? aud.play() : aud.pause()); 这一句是多余的且造成JS出错,因为,id 名为 mplayer 的选择器已经改为类名 .mplayer,并使用了 btns 变量来俘获所有的 mplayer 且对之进行了的编程。 红影 发表于 2023-3-12 17:46
春天是美丽的,阳春三月更美丽,祝福樵歌和清儿三月快乐@樵歌@清儿幽幽
来了来了,师妹的好礼赶紧抱走,{:4_187:}也替请儿先保存着{:4_173:} 谢谢师妹给俺们一场精采的马朮晚会,{:4_176:}
别开生面的创意,小丒们幽默滑稽的表演,让人开心不已{:4_205:} 哇瑟~~这么漂亮的制作{:4_178:} 马黑黑 发表于 2023-3-12 18:12
JS代码有错误。修正了一下,看看如下代码:
这样的修正主义是多么完美{:4_176:} 亲爱的,你太厉害了,加的效果太好了{:4_199:} 刚想发一个这个圆圈圈,感觉不能发了{:4_170:} 马黑黑 发表于 2023-3-12 18:12
JS代码有错误。修正了一下,看看如下代码:
谢谢黑黑,改过来了,小图也出现了。果然有黑黑出马,什么问题都能解决{:4_205:} 那两珍珠手链一边相对旋转达在三维空间摇摆,真神奇{:4_203:} 樵歌 发表于 2023-3-12 18:29
这样的修正主义是多么完美
樵哥哥~~清儿收礼开心
{:4_179:}{:4_179:}拥抱2位