请问一下,老师,为什么var lock = true;为什么要是全局变量,而不是局部变量,

来源:6-1 JS和CSS3结合实现动画

慕田峪1427181

2021-06-28 12:50:37

  <script>

        var pos = 1;//1左边还是2右边

        var oBtn = document.getElementById('btn')

        var oBox = document.getElementById('box')

        var lock = true;

        //函数节流:一个函数执行一次后,只有大于设定的执行周期后才允许执行第二次

        

        oBtn.onclick = function () {

            //函数节流锁

            

            if (!lockreturn;


            box.style.transition = 'all  2s linear 0s'

            if (pos == 1) {

                oBox.style.left = '800px'

                pos = 2;

            } else if (pos == 2) {

                oBox.style.left = '100px'

                pos = 1;

            }

            lock = false;

            setTimeout(function(){

                lock = true

            },2000)


        }




    </script>


写回答

1回答

好帮手慕星星

2021-06-28

同学你好,如果是局部变量,按钮每点击一次,lock变量就会被重新初始化一次,赋值为true。连续点击按钮可能会改变已经有的值,导致元素来回移动的效果,自己可以测试下。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程