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 相关文章推荐
avascript中的自执行匿名函数应用示例
Sep 15 Javascript
javascript转换日期字符串为Date日期对象的方法
Feb 13 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
Jun 26 Javascript
jQuery Mobile动态刷新页面样式的实现方法
May 28 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 Javascript
JavaScript用200行代码制作打飞机小游戏实例
Jun 21 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
Bootstrap实现翻页效果
Nov 27 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
Feb 01 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
Jul 22 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
PHP中常用数组处理方法实例分析
2008/08/30 PHP
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
JavaScript 自定义事件之我见
2017/09/25 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
python之yield表达式学习
2014/09/02 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
Python 学习教程之networkx
2019/04/15 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python使用Matlab命令过程解析
2020/06/04 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
Linux的文件类型
2012/03/07 面试题
法律专业应届生自荐信范文
2014/01/06 职场文书
网络技术专业推荐信
2014/02/20 职场文书
餐厅筹备计划书
2014/04/25 职场文书
先进人物事迹材料
2014/12/29 职场文书
python 命令行传参方法总结
2021/05/25 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang