【发布时间】:2017-08-13 01:20:35
【问题描述】:
我的问题如下:
我有四个元素。每个元素都包含一个音频文件,其中自动播放和循环打开。我想要实现的是:
- 仅在点击的元素上在 4 个类(.o-1、.o-2、.o-3、.o-4)之间切换,因此每次点击时不透明度都会增加,当它达到
.o-4时,它就会消失回.o-1 - 音频的音量应该这样做:第一个值/起点为 0,第一次单击后达到 0.333,第二个值为 0.666,第三个为 1。最后一个值/第 4 次单击后,音频应静音再次。
* {
box-sizing: border-box;
}
body {
padding: 0;
margin: 0;
}
.player {
display: flex;
flex-wrap: wrap;
position: relative;
margin: auto;
top: 50vh;
transform: translateY(-50%);
width: 256px;
height: 256px;
background-color: hsla(0, 0%, 80%, 1);
}
.element {
padding: 8px;
width: 128px;
height: 128px;
background-color: hsla(0, 0%, 60%, 1);
}
.o-1 {opacity: 0.2;}
.o-2 {opacity: 0.4;}
.o-3 {opacity: 0.6;}
.o-4 {opacity: 0.8;}
<div class="player">
<div class="element">
<audio autoplay loop>
<source src="blabla-1.mp3" type="audio/mpeg">
</audio>
</div>
<div class="element">
<audio autoplay loop>
<source src="blabla-2.mp3" type="audio/mpeg">
</audio>
</div>
<div class="element">
<audio autoplay loop>
<source src="blabla-3.mp3" type="audio/mpeg">
</audio>
</div>
<div class="element">
<audio autoplay loop>
<source src="blabla-4.mp3" type="audio/mpeg">
</audio>
</div>
</div>
这是demo。
提前致谢!
【问题讨论】:
-
你的JS在哪里?您应该在哪里单击以更改每个单独的不透明度?那么点击block 1会增加block 1的不透明度?
-
是的,每个都单独。点击元素 1 将增加元素 1 的不透明度和体积。
-
您尝试过任何 Javascript 吗?您想要实现的目标相当简单。音量可以通过(选择器)改变。volume = 0.2;
-
用 jQuery 试过了,但我的代码不相关 - 不幸的是我对 JS 不是很熟悉...
标签: jquery html css audio flexbox