马黑黑 发表于 2022-10-9 07:23

人静

<style>
#papa { left: -214px; width: 1024px; height: 640px; background: gray url('https://638183.freep.cn/638183/t22/webp/kongjing.webp') no-repeat center/cover; box-shadow: 3px 3px 20px #000; position: relative; z-index: 1; }
#tit { position: absolute; left: 20px; top: 20px; font: bold 3em sans-serif; color: #ccc; text-shadow: 2px 2px 4px #fcfcfc; letter-spacing: 2px; }
#btnplay { position: absolute; bottom: 40px; left: 100px; width: 100px; height: 100px; border-radius: 50%; box-shadow: 20px 15px 0 0 yellow; cursor: pointer; animation: swing 1s linear infinite alternate; }
#btnplay::before { position: absolute; content: ''; left: 20px; top: 15px; width: 100%; height: 100%;}
#btnplay::after { position: absolute; content: ''; left: 30px; top: 30px; width: 40%; height: 40%; border-radius: 50%; background: yellow; box-shadow: 0 0 30px 0px yellow, 0 0 100px 0 snow; }
@keyframes swing { from { transform: rotate(0deg); } to { transform: rotate(30deg); } }
</style>

<div id="papa">
        <span id="tit">姬神·人静</span>
        <span id="btnplay" title="播放/暂停"></span>
</div>

<script>
(function() {
        let aud = new Audio();
        aud.src = 'http://www.kumeiwp.com/sub/filestores/2022/03/21/147c882d5501cd40049e330dfcbb444f.mp3';
        aud.loop = true;
        aud.play();
        btnplay.style.animationPlayState = aud.paused ? 'paused' : 'running';
        btnplay.onclick = () => mplay();
        let mplay = () => aud.paused ? (aud.play(), btnplay.style.animationPlayState = 'running') : (aud.pause(), btnplay.style.animationPlayState = 'paused');
}());
</script>

马黑黑 发表于 2022-10-9 07:23

完整代码
<style>
#papa { left: -214px; width: 1024px; height: 640px; background: gray url('https://638183.freep.cn/638183/t22/webp/kongjing.webp') no-repeat center/cover; box-shadow: 3px 3px 20px #000; position: relative; z-index: 1; }
#tit { position: absolute; left: 20px; top: 20px; font: bold 3em sans-serif; color: #ccc; text-shadow: 2px 2px 4px #fcfcfc; letter-spacing: 2px; }
#btnplay { position: absolute; bottom: 40px; left: 100px; width: 100px; height: 100px; border-radius: 50%; box-shadow: 20px 15px 0 0 yellow; cursor: pointer; animation: swing 1s linear infinite alternate; }
#btnplay::before { position: absolute; content: ''; left: 20px; top: 15px; width: 100%; height: 100%;}
#btnplay::after { position: absolute; content: ''; left: 30px; top: 30px; width: 40%; height: 40%; border-radius: 50%; background: yellow; box-shadow: 0 0 30px 0px yellow, 0 0 100px 0 snow; }
@keyframes swing { from { transform: rotate(0deg); } to { transform: rotate(30deg); } }
</style>

<div id="papa">
        <span id="tit">姬神·人静</span>
        <span id="btnplay" title="播放/暂停"></span>
</div>

<script>
(function() {
        let aud = new Audio();
        aud.src = 'http://www.kumeiwp.com/sub/filestores/2022/03/21/147c882d5501cd40049e330dfcbb444f.mp3';
        aud.loop = true;
        aud.play();
        btnplay.style.animationPlayState = aud.paused ? 'paused' : 'running';
        btnplay.onclick = () => mplay();
        let mplay = () => aud.paused ? (aud.play(), btnplay.style.animationPlayState = 'running') : (aud.pause(), btnplay.style.animationPlayState = 'paused');
}());
</script>


马黑黑 发表于 2022-10-9 07:43

本帖最后由 马黑黑 于 2022-10-9 07:46 编辑

本帖配合 手把手教小白用JS做一个简单实用的音频播放器 教程演示简单类型的音画帖效果,下面做一些必要说明:

一、播放器按钮 CSS 代码:

#btnplay {
      position: absolute;
      bottom: 40px;
      left: 100px;
      width: 100px;
      height: 100px;
      border-radius: 50%;
      box-shadow: 20px 15px 0 0 yellow;
      cursor: pointer;
      animation: swing 1s linear infinite alternate;
}


这是利用 box-shadow 模拟月牙结构。因为阴影不是实体,无法对它单击,所以,再用伪元素做个可接受单击的区域,移动都能覆盖月牙阴影处:

#btnplay::before {
      position: absolute;
      content: '';
      left: 20px;
      top: 15px;
      width: 100%;
      height: 100%;
}


孤单单的月牙能抽象体现“人静”的氛围,不过,太单调,所以,再用一个伪元素给月牙弄个“伴星”,令按钮形成组合形态,看着,可能会有这么一种感觉:“人静”的氛围下,我们虽则孤独,但我们心灵丰厚、踏实:

#btnplay::after {
      position: absolute;
      content: '';
      left: 30px;
      top: 30px;
      width: 40%;
      height: 40%;
      border-radius: 50%;
      background: yellow;
      box-shadow: 0 0 30px 0px yellow, 0 0 100px 0 snow;
}


月牙的设计逻辑是:音乐播放时,它摇摆,音乐没有播放时,它静止。月牙使用 span 标签渲染,HTML里还提供了 title,鼠标移动到播放器区域时会有提示文本弹出。

二、其他

有时,一个帖子,有一张底图、一支音乐、一个标题、一个音乐控制按钮就够了。也许,关键是创意,亦即,我们想表达什么、用什么方式表达。炫酷的效果固然重要,不过,极简的风格也能表达我们想要表达的意思。

音画帖不只是为了音画,不仅仅只是依赖技术。技术是实现表达的手段之一,不是全部,但技术不可或缺。技术可以是复杂的,也可以是简单的。

马黑黑 发表于 2022-10-9 07:50

本帖,不论浏览器是否支持自动播放声音,都能提供友好的交互操作。访问者打开帖子,如果浏览器支持声音的自动播放,就可以立马听到美妙的音乐;如果浏览器不支持声音的自动播放,访问者如果被月球播放器吸引,会将鼠标指针移动到其上,会发现文本提示,会点击它。

红影 发表于 2022-10-9 09:04

这个非常简洁,却意境悠远,非常引人入胜{:4_187:}

红影 发表于 2022-10-9 09:05

“炫酷的效果固然重要,不过,极简的风格也能表达我们想要表达的意思。”
说得有道理,做帖子主要是表达自己的情感,不是为了做而做。

红影 发表于 2022-10-9 09:10

呀不是为了操控伪元素,这个帖子的代码还要少,简洁的内容组织得好,一样令人陶醉。关键还在于它所展开的意境,犹如古人说的,对一张琴,一壶酒,一溪云,便风光无限{:4_199:}

红影 发表于 2022-10-9 09:11

这首一人静曾经特别喜欢。

加林森 发表于 2022-10-9 11:00

又出新的教程了。{:4_199:}

醉美水芙蓉 发表于 2022-10-9 11:29

马黑黑 发表于 2022-10-9 12:12

醉美水芙蓉 发表于 2022-10-9 11:29
欣赏黑黑老师新作品!

{:4_190:}

相约爱晚亭 发表于 2022-10-9 13:48

有创意的播放器按钮,赞!

寒冬残荷 发表于 2022-10-9 13:53


<style>
#divt1{background-image:url(https://pic1.imgdb.cn/item/63417abb16f2c2beb1075797.gif); background-size:cover; width:800px; height:200px; font-size:50px; text-align:center; font-weight:bold; line-height:200px; color:transparent; -webkit-background-clip:text; border:0px #FF4A20 solid; }
</style>
<div id="divt1">谢谢分享!欣赏、学习、点赞!</div>

寒冬残荷 发表于 2022-10-9 13:57

哦,回头看老师的讲解才知道#btnplay::before的作用。开始查看源代码时,没看老师的讲解,觉得这句是多余的。{:5_117:}

寒冬残荷 发表于 2022-10-9 14:06

马黑黑 发表于 2022-10-9 07:43
本帖配合 手把手教小白用JS做一个简单实用的音频播放器 教程演示简单类型的音画帖效果,下面做一些必要说明 ...

“有时,一个帖子,有一张底图、一支音乐、一个标题、一个音乐控制按钮就够了。也许,关键是创意,亦即,我们想表达什么、用什么方式表达。炫酷的效果固然重要,不过,极简的风格也能表达我们想要表达的意思。”

可对我们这些初学者,首先是学习有关知识(html、css、JS),连门都没入,谈何创意、炫酷?!{:5_117:}

小辣椒 发表于 2022-10-9 17:41

马黑黑 发表于 2022-10-9 07:50
本帖,不论浏览器是否支持自动播放声音,都能提供友好的交互操作。访问者打开帖子,如果浏览器支持声音的自 ...

一天手机晃荡下来,现在才看见这个帖{:4_178:}

小辣椒 发表于 2022-10-9 17:43

马黑黑 发表于 2022-10-9 07:50
本帖,不论浏览器是否支持自动播放声音,都能提供友好的交互操作。访问者打开帖子,如果浏览器支持声音的自 ...

这个就是我看见私房菜的那个效果吧,晚上再上来看看了

小辣椒 发表于 2022-10-9 17:44

谢谢黑黑的精彩不断,这个就是玩音画人可以的播放器,太好了{:4_178:}@千羽

千羽 发表于 2022-10-9 18:05

本帖最后由 千羽 于 2022-10-9 18:37 编辑

小辣椒 发表于 2022-10-9 17:44
谢谢黑黑的精彩不断,这个就是玩音画人可以的播放器,太好了@千羽
谢谢小辣椒啦,可是我的信心不足啊,我先试试哈{:4_173:}

马黑黑 发表于 2022-10-9 18:47

小辣椒 发表于 2022-10-9 17:44
谢谢黑黑的精彩不断,这个就是玩音画人可以的播放器,太好了@千羽

谢谢管理员的支持
页: [1] 2
查看完整版本: 人静