链式运动框架就是一系列的运动分阶段进行,在普通的运动框架上加上一个参数function,这个function表示下一个要执行的动作,具体代码如下:

<!DOCTYPE HTML>
<!--链式运动框架:运动分阶段进行,当运动停止的时候,执行下一个运动-->
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#div1 {width:100px;height:100px;background:red;filter:alpha(opacity:30);opacity:0.3}
</style><script>
window.οnlοad=function ()
{var oDiv=document.getElementById('div1');//先获取div元素oDiv.οnmοuseοver=function (){startMove(oDiv,'width',300,function(){//先是宽变300startMove(oDiv,'height',300,function(){//当宽变300的时候,即运动结束时候开启另一个运动,使其高变为300startMove(oDiv,'opacity',100);//使透明度变成100,原来是30});});};oDiv.οnmοuseοut=function ()//当鼠标移出的时候,跟移进的时候效果相反即可。{startMove(oDiv,'opacity',30,function(){startMove(oDiv,'height',100,function(){startMove(oDiv,'width',100);});});};};//以下是运动框架的内容
function getStyle(obj, name)
{if(obj.currentStyle){return obj.currentStyle[name];}else{return getComputedStyle(obj, false)[name];}
}function startMove(obj, attr, iTarget, fnEnd)//比普通的运动框架写多了一个函数,说明下一阶段要执行的运动
{clearInterval(obj.timer);obj.timer=setInterval(function (){var cur=0;if(attr=='opacity'){cur=Math.round(parseFloat(getStyle(obj, attr))*100);}else{cur=parseInt(getStyle(obj, attr));}var speed=(iTarget-cur)/6;speed=speed>0?Math.ceil(speed):Math.floor(speed);if(cur==iTarget){clearInterval(obj.timer);if(fnEnd)fnEnd();}else{if(attr=='opacity'){obj.style.filter='alpha(opacity:'+(cur+speed)+')';obj.style.opacity=(cur+speed)/100;}else{obj.style[attr]=cur+speed+'px';}}}, 30);
}</script>
</head>
<body><div id="div1"></div>
</body>
</html>

效果图:

当鼠标移进的时候,先横向变宽,再纵向变高,最后透明度变成100,效果如下:

当鼠标移出的时候,效果刚好和上面相反:

(43)JS运动之链式运动框架相关推荐

  1. Javascript之链式运动框架1

    第一部分:HTML内容: <script src="6-1.js"></script> <script> window.οnlοad=funct ...

  2. javascript从入门到跑路-----小文的js学习笔记(25)------运动框架----匀速运动、缓冲运动、多物体运动、链式运动

    ** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...

  3. Javascript 链式运动框架——逐行分析代码,让你轻松了解运动的原理

    所谓链式运动,就是一环扣一环.我们的很多运动实际上来说指的就是分阶段的,第一个阶段动完,下个阶段开始动. 这个链式运动框架就是用来处理这些问题的. 我们先来看下之前的运动框架,以下是Javascrip ...

  4. 【原生JS组件】javascript 运动框架

    大家都知道JQuerry有animate方法来给DOM元素进行运动,CSS3中也有transition.transform来进行运动.而使用原生的Javascript来控制元素运动,须要写非常多运动的 ...

  5. js运动应用之运动框架

    js运动应用之运动框架 <style>div{width:200px;height:200px;background-Color:yellow;float:left;font-size:1 ...

  6. 模拟智能手环的时间显示功能 c语言,HT1635AHT1635B在穿戴式运动手环的LED显示之C语言版.PDF...

    HT1635AHT1635B在穿戴式运动手环的LED显示之C语言版.PDF HT1635A/HT1635B 在穿戴式运动手环的LED 显示之C 语言版应用范例 HT1635A/HT1635B 在穿戴式 ...

  7. 基于vue的响应式ui框架_基于Vue.js的响应式和可配置UI框架

    基于vue的响应式ui框架 Framevuerk (Framevuerk) Fast, Responsive, Multi Language, Both Direction Support and C ...

  8. 【Spring 5】响应式Web框架实战(下)

    - [Spring 5]响应式Web框架前瞻  - 响应式编程总览  - [Spring 5]响应式Web框架实战(上) 1 回顾 上篇介绍了如何使用Spring MVC注解实现一个响应式Web应用( ...

  9. html5 2015,2015年有用的16大免费的响应式HTML5框架

    Twitter Bootstrap Bootstrap是全世界最流行的html5框架之一.Twitter Bootstrap是光滑的.直观和强大的前端web开发框架,令开发更加快捷.容易.它拥有用于开 ...

最新文章

  1. Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优
  2. declare-styleable:自定义控件的属性
  3. mysql删除重复文章标题_MySQL中查询、删除重复记录的方法大全
  4. matlab 腐蚀 结构元素,图像的腐蚀
  5. 未能加载文件或程序集或它的某一个依赖项_手写一个miniwebpack
  6. mysql 5.7.4 m14_win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)
  7. 学生用计算机shift,电脑Shift键你会用吗
  8. 顺丰同城宣布苏炳添出任首位品牌代言人
  9. linux flush 磁盘,linux 磁盘IO栈和优化思路
  10. python LDA实践入门学习
  11. 几种java反编译软件的安装以及使用总结
  12. yaahp使用教程_yaahp层次分析法软件
  13. 麻省理工18年春软件构造课程阅读03“测试”
  14. 交换排序图解_动画图解十个经典排序算法
  15. 傻妞sillyGirl教程
  16. kindle看pdf不清楚_无法在Kindle上阅读PDF格式的电子书,该怎么办呢?
  17. 蚂蚁市场教程:电视安装看B站(哔哩哔哩)TV版
  18. 联合国基金会 广告投放 策略
  19. JSP中访问本地图片
  20. 【Hinton大神新作】Dynamic Routing Between Capsules阅读笔记

热门文章

  1. 区分重积分、曲线积分、曲面积分的概念
  2. unity-个人开发技巧
  3. 计算机硬件与软件的介绍,计算机软件与硬件介绍.ppt.ppt
  4. css 图片大小自适应div,CSS 图片自适应显示宽度
  5. Mn3O4六边形纳米晶体/纳米二氧化锰/纳米氢氧化镍正极极片氧化物-瑞禧
  6. 程序死锁了,我该怎么办?
  7. 云隙服务器怎么设置,云隙-CloudGap
  8. c51单片机之利用外部中断实现数字时钟,且具有调时功能
  9. 【零代码爬虫】如何使用webscraper插件爬取数据,以淘宝网为例
  10. png格式图片和jpg格式图片有什么区别?