<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="智能社 - zhinengshe.com" />
<meta name="copyright" content="智能社 - zhinengshe.com" />
<title>智能社 - www.zhinengshe.com</title>
<style>
*{margin:;padding:;list-style:none;}
#ul1{width:516px;height:516px; margin:10px auto; position:relative;}
#ul1 li{float:left;width:150px; height:150px; border:1px solid #; background:#ccc; margin:10px;}
</style>
<script src="move.js"></script>
<script> window.onload = function(){ var oBtn = document.getElementById("btn1");
var oUl = document.getElementById("ul1");
var aLi = oUl.children; //布局转换
var aPos = [];
for(var i = ; i < aLi.length; i++){
aPos[i] = {left:aLi[i].offsetLeft,top:aLi[i].offsetTop}; aLi[i].style.left = aPos[i].left + "px";
aLi[i].style.top = aPos[i].top + "px";
} for(var i = ; i < aLi.length; i++){ aLi[i].style.position = "absolute";
aLi[i].style.margin = "";
} var timer = null;
oBtn.onclick = function(){ var i = ;
clearInterval(timer);
timer = setInterval(function(){ (function(index){
move(aLi[i],
{width:,height:,left:,top:,opacity:},
{complete:function(){
//alert(index);
if(index == aLi.length - ){
//alert("运动完成"); i = aLi.length - ;
clearInterval(timer);
timer = setInterval(function(){ move(aLi[i],
{
width:,height:,
left:aPos[i].left,top:aPos[i].top,
opacity:
}
); i--; if(i == -){
clearInterval(timer);
} },);
} }
}); })(i); i++; if(i == aLi.length){
clearInterval(timer);
} },);
}; }; </script>
</head> <body>
<input id="btn1" type="button" value="收起来"/>
<ul id="ul1"> <li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul> </body>
</html>
//版权 北京智能社©, 保留所有权利

function getStyle(obj,name){
return (obj.currentStyle || getComputedStyle(obj,false))[name];
} function move(obj,json,options){ options = options || {};
options.duration = options.duration || ;
options.easing = options.easing || "ease-out"; var start = {};
var dis = {}; for(var name in json){ start[name] = parseFloat(getStyle(obj,name)); dis[name] = json[name] - start[name];
} var count = Math.round(options.duration/); var n = ; clearInterval(obj.timer);
obj.timer = setInterval(function(){ n++; for(var name in json){ var cur = start[name] + dis[name]/count*n; switch(options.easing){
case "linear":
var a = n/count;
var cur = start[name] + dis[name]*a; break;
case "ease-in":
var a = n/count;
var cur = start[name] + dis[name]*Math.pow(a,); break;
case "ease-out":
var a = - n/count;
var cur = start[name] + dis[name]*( - Math.pow(a,));
break;
} if(name == "opacity"){
obj.style.opacity = cur;
obj.style.filter = "alpha(opacity:"+cur*+")";
} else {
obj.style[name] = cur + "px";
}
} if(n == count){
clearInterval(obj.timer);
options.complete && options.complete();
} },); }

js运动例子1的更多相关文章

  1. JS运动从入门到兴奋1

    hello,我是沐晴,一个充满了才华,却靠了照骗走江湖的前端妹子.在这个充满PS的年代,这你们都信,哈哈,废话不多说,今天要分享的是关注JS运动的知识.楼主一直认为,不管学习什么,核心思想才是王道,掌 ...

  2. JS运动学习笔记 -- 任意值的运动框架(高/宽度,背景颜色,文本内容,透明度等)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 第八节 JS运动基础

    运动基础 让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在 ...

  4. 带无缝滚动的轮播图(含JS运动框架)

    今天学习了一下轮播图的写作,想到前一阵学过的无缝滚动得思想,所以就把轮播与滚动结合了一下.不过我的代码的神逻辑我自己都不敢恭维,在没网没参照的情况下,只能硬着头皮往下写,希望跟大家共勉吧. js运动框 ...

  5. js运动框架之一条乱跑的虫子

    克隆与运动框架的联合应用 效果:点击元素块后,元素块开始随机的向任何方向移动,并附带一堆颜色随机的"尾巴".每个方向运动3秒后改变方向,同时笑脸变哭脸. 如图所示: 朝某个方向运动 ...

  6. 关于js运动的一些总结

    js运动实现,有两种.一种是速度版,另一种是时间版. 速度版是通过对速度的加减乘除,得出元素的运动数据.时间版是通过对时间进行Tween公式运算,得出元素的运动数据. 速度版运动优点:容易在运动过程中 ...

  7. js运动动画

    原文:js运动动画 今天简单的学了一下js运动动画,再此感谢慕课网的这位老师http://www.imooc.com/view/167,讲的很不错. 下面是我整理出来的结果. 知识点一:速度动画. 1 ...

  8. JS运动 - 无缝滚动和缓动动画

    JS运动 - 无缝滚动和缓动动画 无缝滚动原理:首先先复制两张图片(第一张和第二张)放到最后面;ul绝对定位,如果ul的left值大于等于4张图片的宽度,就应该快速复原为0. html <!DO ...

  9. 解析JS运动

    解析JS运动 物体运动原理:通过改变物体的位置,而发生移动变化. 任何运动都是相对的,就像物理中的运动公式:s(要达到的)=s0(当前的样式值)+vt. 方法:      1.运动的物体使用绝对定位 ...

随机推荐

  1. c/c++ 动态申请数组(转载)

    转载:http://blog.csdn.net/hondely/article/details/6779887 转载:http://bbs.csdn.net/topics/390721031 转载:h ...

  2. Linux内存管理--虚拟地址、逻辑地址、线性地址和物理地址的区别(二)【转】

    本文转载自:http://blog.csdn.net/yusiguyuan/article/details/9668363 这篇文章中介绍了四个名词的概念,下面针对四个地址的转换进行分析 CPU将一个 ...

  3. 如何修改bootstrap模态框的backdrop蒙版区域的颜色?

    参考地址: http://www.cnblogs.com/9miao/p/4988196.html 蒙板样式实现: 大家或许注意到了,在做模态弹出窗时,底部常常会有一个透明的黑色蒙层效果:在Boots ...

  4. WannaflyCamp 平衡二叉树(DP)题解

    链接:https://www.nowcoder.com/acm/contest/202/F来源:牛客网 题目描述 平衡二叉树,顾名思义就是一棵“平衡”的二叉树.在这道题中,“平衡”的定义为,对于树中任 ...

  5. 【第三十二章】 elk(3)- broker架构 + 引入logback

    实际中最好用的日志框架是logback,我们现在会直接使用logback通过tcp协议向logstash-shipper输入日志数据.在上一节的基础上修改!!! 一.代码 1.pom.xml 1 &l ...

  6. hbase读写流程分析

    前言 最近被大佬问到一个问题,hbase查询数据在最坏的场景下需要进行几次rpc,当时就懵了..下面主要对client端代码进行分析.阅读文章和看源码更配~ 读数据 流程总览 1. 从zookeepe ...

  7. catalina.home与 catalina.base区别

    转载请注明出处: 以Tomcat6.0为例,其Tomcat目 录结构如下: bin (运行脚本) conf (配置文件) lib (核心库文件) logs (日志目录) temp (临时目录) web ...

  8. java代码实现highchart与数据库数据结合完整案例分析(二)---折线图

    作者原创:未经博主允许不许转载 在上一篇的博客中,展示和分析了如何做一个饼状图,有疑问可以参考上一篇博客. 现在分析和展示折线图的绘制和案例分析, 先展示效果图: 与饼状图不同的是,折线图展现更多的数 ...

  9. DrawDibDraw__ZC测试

    ZC: 先把 自己尝试成功的代码 记录下来,不要 弄没了之后 又忘了怎么弄... ZC: 代码 有点乱,没整理.没写 哪些是 原来MFC里面的 哪些是我自己写的,参考上一篇文章来看吧 1.VC6 的一 ...

  10. 《WAP团队》项目系统设计改进与详细设计

    任务1: 一.分析<基于家教管理系统项目需求规格说明书>初稿的不足,特别是文档需求描述建模不完整的内容. 通过软件工程更深入的学习发现我们的需求分析建模明显不足,缺少最重要的类图. 二.团 ...