js仿360开机效果


Posted in Javascript onDecember 26, 2019

本文实例为大家分享了js仿360开机效果的具体代码,供大家参考,具体内容如下

实现效果:

1.点击关闭图片按钮先往下退出再往右退出

实现步骤:

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);
      }

开机图片,的由两个图片中组成

<!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>

效果:

js仿360开机效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js优化针对IE6.0起作用(详细整理)
Dec 25 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
Mar 21 Javascript
js实现图片缓慢放大缩小效果
Aug 02 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 Javascript
javascript添加前置0(补零)的几种方法
Jan 05 Javascript
基于jQuery实现咖啡订单管理简单应用
Feb 10 Javascript
jQuery实现滚动效果
Nov 17 jQuery
angularJs中$scope数据序列化的实例
Sep 30 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
Apr 25 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
Aug 16 Javascript
element-ui中按需引入的实现
Dec 25 #Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
Dec 25 #Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 #jQuery
解决Vue 刷新页面导航显示高亮位置不对问题
Dec 25 #Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
Dec 25 #Javascript
如何基于JS截获动态代码
Dec 25 #Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 #Javascript
You might like
discuz安全提问算法
2007/06/06 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
php 常用的系统函数
2017/02/07 PHP
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
python使用生成器实现可迭代对象
2018/03/20 Python
python 编写简单网页服务器的实例
2018/06/01 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Python如何发送与接收大型数组
2020/08/07 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
财务会计实习报告体会
2013/12/20 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
高中班主任心得体会
2016/01/07 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript