js让页面动起来 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

##tab选项卡之延迟切换

同时运动

实现思路:

在鼠标滑过时我们不立即执行相应的函数,而是延迟一段时间后执行,就达到了延迟切换的效果

效果

logo运动


编写函数之前我们应该知道

  1. setTimeout函数:setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。用法与setInterval类似。
  2. 设定timer值,清除之前的定时器,避免在未达到500ms又滑过其他选项卡出现的bug
  3. 将this赋值给that变量,因为在setTimeout函数中的this指向window
  4. 为什么不使用menu_li[i]呢?因为在等待500ms的过程中循环早已做完,当500ms后我们使用到的将会是showTab(menu_li[4]),所以用menu_li[i]并不能达到预期的效果。

menu_li[i].onmouseover = function(){
            if(timer){
                clearTimeout(timer);
            }
            var that = this;
            timer = setTimeout(function(){
                showTab(that);
            },500);
        };
将this赋值给that变量