Jquery实现在线钢琴

闲来无事用jquery写了个小东西
功能:按键能弹奏钢琴

html部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>手风琴</title>
    <script src="../lib/jquery-1.11.3.min.js"></script>
    <script src="piano.js"></script>
    <link rel="stylesheet" href="piano.css">
</head>
<body>
<p class="copy">制作:老狗滴大爷</p>
<div class="nac">
    <p>《纯节奏》13556515651355654321666646176566664617621355651712323215671</p>
    <br>
    <p>《勇敢的鄂伦春》 5555 35 51 6553 656532 332112 13333 35255 23235652323211</p>
    <br>
    <p>《小鸭子》553355332321 1664466443532 11111161 44456 776 55432345 776 55433221</p>
</div>
<div class="plat">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</div>
<div class="pi">
    <audio src="music/37.mp3" controls></audio>
    <audio src="music/38.mp3" controls></audio>
    <audio src="music/39.mp3" controls></audio>
    <audio src="music/40.mp3" controls></audio>
    <audio src="music/41.mp3" controls></audio>
    <audio src="music/42.mp3" controls></audio>
    <audio src="music/43.mp3" controls></audio>
    <audio src="music/44.mp3" controls></audio>
</div>
</body>
</html>

css部分

*{
    padding: 0;
    margin: 0;
    background-color: #555555;
}
.nac{
    width: 800px;
    border: 1px #8a6d3b solid;
    position: absolute;
    left: 350px;
    color: white;
    font-size: 21px;
    font-family: 楷体;
}
.copy{
    position: absolute;
    left: 50px;
    top: 50px;
    width: 100px;
    font-family: 楷体;
    font-size: 30px;
    color: white;
}
.plat{
    width: 900px;
    position: absolute;
    left: 350px;
    top: 200px;
    transform: perspective(400px) rotateX(30deg);
}
.plat li{
    list-style: none;
    width: 100px;
    height: 300px;
    background-color: white;
    box-shadow: 0 10px 5px rgb(0,0,0,0.7);
    position: relative;
    margin-left: 2px;
    border: 1px #8c8c8c solid;
    float: left;
    transform: perspective(500px) rotateX(-5deg);

}
.pi{
    display: none;
}

js部分

$(function () {
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 65) {
            count = 0;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 83) {
            count = 1;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 68) {
            count = 2;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 70) {
            count = 3;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 74) {
            count = 4;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 75) {
            count = 5;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 76) {
            count = 6;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });
    $(document).keydown(function (e) {
        var key =  e.which;
        if (key == 186) {
            count = 7;
            $("li").eq(count).animate({
                top:2,
                left:2
            },10).animate({
                top:0,
                left:0
            },10);
            $("audio").get(count).load();
            $("audio").get(count).play();

        }
    });

})

音乐资源
百度网盘

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是使用jQuery和HTML5的audio元素来实现钢琴的基本示例。 HTML结构: ```html <div class="piano"> <div class="white-key" data-note="C"></div> <div class="black-key" data-note="C#"></div> <div class="white-key" data-note="D"></div> <div class="black-key" data-note="D#"></div> <!-- 其他键... --> </div> <audio id="piano-audio"></audio> ``` CSS样式: ```css .piano { display: flex; justify-content: center; } .white-key { width: 50px; height: 150px; background-color: white; border: 1px solid black; position: relative; } .black-key { width: 30px; height: 90px; background-color: black; position: absolute; top: 0; left: 25px; z-index: 1; } .black-key:before { content: ""; width: 100%; height: 100%; background-color: black; position: absolute; top: -10px; left: 0; z-index: -1; } .white-key:hover, .black-key:hover { cursor: pointer; background-color: #f5f5f5; } ``` JavaScript代码: ```javascript $(document).ready(function() { $('.piano .white-key, .piano .black-key').mousedown(function() { var note = $(this).data('note'); $('#piano-audio').attr('src', 'audio/' + note + '.mp3')[0].play(); }); }); ``` 在这个示例中,我们使用jQuery的mousedown()方法来为每个键添加鼠标按下事件处理函数。当用户按下钢琴键时,我们将获取该键的音符,并将其与一个audio元素相关联,然后播放音频。 请注意,audio元素的src属性是在用户按下钢琴键时动态更新的,以便与相应的音频文件进行关联。此外,我们还使用了[0]来获取audio元素的DOM对象,因为jQuery的attr()方法不能直接设置HTML5元素的属性。 这只是一个简单的示例,您可以根据自己的需要进行更详细的实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值