• 原生js实现架子鼓特效


    这是代码完成的效果,按下abcd会出现对应的架子鼓音乐的效果。

    简单的介绍下代码思路,html和css部分就不多说了。

    重要的是js部分。

    大致是这样的,

    图片描述

    首先获取到所有的按钮为一个数组,然后遍历整个数组,增加监听函数,如果按钮的其一被按下,就会播放相应的声音。

    <script>
            function removeTransition(e) {
    
                if (e.propertyName !== 'transform') return; //如果当前的元素变化的属性名称不是transform,return如果if条件成立的话,return并终止运行,如果条件不成立会运行下一行代码。
                e.target.classList.remove('playing'); //移除每个名playing class
            }
    
            function playsound(e) {
                const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`); //es5的获取元素的方法并不推荐,并不是说不好,而是es6的办法的却更简单一些,其中使用了es6的模板字符串。
                const key = document.querySelector(`div[data-key="${e.keyCode}"]`);
                if (!audio) return; //同上,if(aduio!=null)=if(!aduio),如果audio不为空的话,同样终止执行,反之会执行下面的代码。
    
    
                key.classList.add('playing'); //添加class名为playing
                audio.currentTime = 0; //播放延迟为0
                audio.play(); //播放函数
            }
    
            const keys = Array.from(document.querySelectorAll('.key')); //获取所有class未key的数组集合
            keys.forEach(function(key) { //这段代码可以改成es6的语法的,key => key.addEventListener('transitionend',removeTransition)
                key.addEventListener('transitionend', removeTransition);
                console.log(key); //为了简单写成es5,监听到每个key执行removeTransition
                //key就是每个keys
            });
            window.addEventListener('keydown', playsound); //addEventListener,监听键盘的动向调用playsound函数
        </script>

    最后附上github地址 http://link.zhihu.com/?target...

    本文转载于:原生js实现架子鼓特效

  • 相关阅读:
    【Linux】【Chrome】安装Chrome浏览器的攻略
    ubuntu下安装程序的三种方法
    scala学习笔记
    安装scala
    安装java
    Python学习笔记
    Linux安装python
    软件测试笔记
    Linux安装微信
    PUTTY学习
  • 原文地址:https://www.cnblogs.com/10manongit/p/12898683.html
Copyright © 2020-2023  润新知