JavaScript實(shí)現(xiàn)通過鍵盤彈鋼琴的效果實(shí)例代碼
前言
本片文章通過觸發(fā)鍵盤事件來觸發(fā)對(duì)應(yīng)的音樂,而且給頁面添加了漸變的active類名,通過觸發(fā)不同的鼠標(biāo)事件,然后active類移動(dòng)來實(shí)現(xiàn)按下鋼琴鍵的視覺效果。
關(guān)鍵代碼:
<!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遍歷上鍵盤事件,每個(gè)不同的li觸發(fā)不同的音樂,再通過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>
頁面效果:
總結(jié)
到此這篇關(guān)于JavaScript實(shí)現(xiàn)通過鍵盤彈鋼琴效果的文章就介紹到這了,更多相關(guān)JS通過鍵盤彈鋼琴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js?select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼
這篇文章主要介紹了js?select支持手動(dòng)輸入實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-05-05原生js添加節(jié)點(diǎn)appendChild、insertBefore方式
這篇文章主要介紹了原生js添加節(jié)點(diǎn)appendChild、insertBefore方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10總結(jié)Javascript中數(shù)組各種去重的方法
相信大家都知道網(wǎng)上關(guān)于Javascript中數(shù)組去重的方法很多,這篇文章給大家總結(jié)Javascript中數(shù)組各種去重的方法,相信本文對(duì)大家學(xué)習(xí)和使用Javascript具有一定的參考借鑒價(jià)值,有需要的下面來一起看看。2016-10-10