JavaScript实现仿360开机动画效果详解

作者:流萤

时间:2026-10-23

浏览:144

本文详细介绍如何使用JavaScript实现仿360安全卫士的开机动画效果。通过封装通用的缓动运动函数,结合DOM元素的位置与尺寸控制,实现图片关闭时的向下及向右退出动画。文章包含完整的HTML结构、CSS样式及JS逻辑代码,适合前端初学者参考学习。

文章目录

JavaScript实现仿360开机动画效果详解

本文分享了一段使用JavaScript编写的仿360安全卫士开机动画的具体代码示例,供读者参考学习。

实现效果

最终实现的视觉效果如下:

当用户点击关闭图片按钮时,图片会先执行向下退出的动画,随后再执行向右退出的动画。

实现步骤

具体实现步骤如下:

1. 封装一个通用的运动函数; 2. 为图片上的关闭按钮创建一个容器盒子; 3. 为该关闭盒子绑定点击事件,当点击发生时触发后续逻辑; 4. 将下方图片的高度设置为0,并应用缓动动画效果; 5. 将上方图片的宽度设置为0,同样应用缓动动画效果。

以下是带有回调函数支持的缓动动画核心代码:

缓动动画代码实现


 function getStyle(obj,attr){ //兼容性写法获得样式
        if(window.getComputedStyle){ 
          return window.getComputedStyle(obj, null)[attr];
        }else{
          return obj.currentStyle[attr];
        }
      }
       function animate(obj, json, speed, callback){
        clearInterval(obj.timer);
        obj.timer = setInterval(function(){
          var flag = true;
          for(var attr in json){
          var current = parseInt(getStyle(obj,attr));
          var step = (json[attr] - current) / 10;
           step = step > 0 ? Math.ceil(step) : Math.floor(step);
           obj.style[attr] = current + step +'px';
          if(current != json[attr]){
            flag = false;
          }
        }
         if(flag){ 
          clearInterval(obj.timer);
          if(callback && typeof callback == 'function'){ //验证callback是否传递,传递的话看是否是函数类型
           callback();
          }
         }
        },speed);
      }

开机图片由上下两张图片组合而成,整体布局如下:

HTML结构与样式


<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    .box{
      width: 322px;
      position: fixed;
      bottom:0;
      right:0;
    }
    span{
      position: absolute;
      top:0;
      right:0;
      width:30px;
      height: 20px;
      cursor: pointer;
    }
    .box img{
      vertical-align: top;
    }
  </style>
  <script type="text/javascript" src="函数封装.js"></script>
  <script type="text/javascript">
    function $(id){
      return document.getElementById(id);
    }
    window.onload = function(){
      var span = document.getElementsByTagName('span')[0];
      var box = $('box');
      var bottom = $('bt');
      var top = $('hd');
      span.onclick = function(){
        var json = {"height": 0};
        animate(bottom,json,20,function(){
        animate(box,{"width":0},20);
        });
      }
    }
  </script>
</head>
<body>
<div class="box" id="box">
  <span></span>
  <div class="hd" id="hd">
    <img src="images/t.jpg" alt=""/>
  </div>
  <div class="bd" id="bt">
    <img src="images/b.jpg" alt=""/>
  </div>
</div>
</body>
</html>

实际运行效果如图所示:

JavaScript实现仿360开机动画效果详解

以上就是本文的全部内容,希望这段代码能对读者的学习有所帮助,也欢迎大家继续支持本站。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章