html jq制作钢琴,JS jQuery === 实现钢琴效果

本文介绍如何利用JavaScript和CSS实现网页上的动态效果,通过音乐节拍控制div元素位置和大小变化,形成视觉与音频的交互。代码展示了如何通过定时器和音频数组控制多个div元素的动画播放,达到无缝切换的效果。
摘要由CSDN通过智能技术生成

height:100px;

width:100px;

position: absolute;

left:300px;

top:300px;

background:red;

}

div:nth-of-type(2){

left:400px;

background:orange;

}

div:nth-of-type(3){

left:500px;

background:yellow;

}

div:nth-of-type(4){

left:600px;

background:green;

}

div:nth-of-type(5){

left:700px;

background:#0ff;

}

div:nth-of-type(6){

left:800px;

background:blue;

}

div:nth-of-type(7){

left:900px;

background:purple;

}

//window 点击 ,自动播放

var music = '1155665 4433221 5544332 5544332 1155665 4433221';var sentences = music.split(" ");

$(window).on('click',function(){

play_yiju(sentences[0])

})var count = 0 ; //用来表示当前播放到哪一句了,当执行一次函数的时候 证明播放完一句了。

functionplay_yiju(yiju){if(count === sentences.length){ //当我的计数器=我所有音乐的长度了,证明播放完毕,return

return;

}

count++ //播放一次count++

//获取每一句里面的字符,与 div的索引有关系,与audio的索引有关系

//获取到每一句 里面的每一个音符

var notes = yiju.split("");//获取了包括每个音符的数组

//遍历这个数组

for(let i = 0 ; i < notes.length;i++){//获取索引、、在第一个音符调用自己的audio 后 500毫秒之后再调用第二个,才能形成音乐的效果,所以在这里要使用一个setTimeout 函数

//第一个 0 * 500 第二个 1 * 500ms后播放,第三个 2 * 500 ms后播放 //所以时间间隔应该是 500 * i

setTimeout(function(){//获取对应的div 索引 和 audio的索引

var index = notes[i]-1;//加载音频

$('audio')[index].load();//播放音频

$('audio')[index].play();//给div 加上动画

$('div').eq(index).animate({

height:300,

top:100},function(){

$('div').eq(index).animate({

height:100,

top:300})

})if(i === notes.length -1){ //当我的i 等于了最后一个音符,这个时候要开始播放下一段了,间隔500ms

(

setTimeout(()=>{

play_yiju(sentences[count])

},500)

)

}

},500 *i)

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值