JavaScript 实现键盘控制钢琴音效与按键动画

作者:像素猫

时间:2026-10-31

浏览:292

本文介绍如何利用 JavaScript 监听键盘事件来触发钢琴音效,并结合 CSS 类名切换实现按键高亮的视觉反馈。通过绑定按键与音频资源,模拟真实的钢琴演奏交互体验,适用于前端互动教学或趣味网页开发。

文章目录

前言

本文通过监听键盘事件来播放对应的音乐文件,同时在页面中引入渐变的 active 类名。通过响应不同的鼠标或键盘操作,动态移动 active 类名以呈现钢琴键被按下的视觉特效。

关键代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        #box {
            margin: 100px auto;
            width: 900px;
            height: 500px;
            position: relative;
            background: url(./keys.png) no-repeat;
            background-size: contain;
        }

        li {
            width: 100px;
            height: 440px;
            float: left;
        }

        .active {
            background: linear-gradient(to bottom, #ffffff, #333);
            opacity: 0.5;
        }
    </style>
</head>

<body>
    <div id="box">
        <ul>
            <li class="active"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <script>
        // 思路:给li遍历上键盘事件,每个不同的li触发不同的音乐,再通过css添加上渐隐的效果。
        var lis = document.querySelectorAll('li');
        var box = document.querySelector('#box');
        // console.log(box, lis);
        document.addEventListener('keydown', function (e) {
            e = e || window.event;
            var k = e.key;
            if (k >= '1' && k <= '9') {
                var audio = new Audio(`./钢琴9键-mp3/d${k}.mp3`);
                audio.play();
                for (var i = 0; i < lis.length; i++) {
                    lis[i].classList.remove('active');
                }
                lis[k - 1].classList.add('active');
            }
        })
    </script>
</body>

</html>

页面效果:

前言

总结

至此,关于使用 JavaScript 实现键盘控制钢琴音效的文章介绍完毕。如需了解更多 JS 键盘钢琴相关内容,欢迎查阅本站往期文章或继续浏览后续教程,感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章