javascript运动框架用法实例分析(实现放大与缩小效果)


Posted in Javascript onJanuary 08, 2016

本文实例讲述了javascript运动框架用法。分享给大家供大家参考,具体如下:

该运动框架可以实现多物体任意值运动

运行效果截图如下:

javascript运动框架用法实例分析(实现放大与缩小效果)

例子:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>运动框架</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; left:0; top:50px; opacity:0.3; filter:alpha(opacity=30);}
</style>
<script>
window.onload = function()
{
 var oBtn = document.getElementById('btn1');
 var oDiv = document.getElementById('div1');
 oBtn.onclick = function()
 {
 startMove(oDiv, {width:200, height:200, opacity:100}, function(){
  startMove(oDiv, {width:100, height:100, opacity:30});
 });
 };
};
function getStyle(obj, attr)
{
 if(obj.currentStyle){
 return obj.currentStyle[attr]; 
 }else{
 return getComputedStyle(obj, false)[attr];
 }
}
function startMove(obj, json, fn)
{
 clearInterval(obj.timer);
 obj.timer = setInterval(function(){
 var bStop = true;
 for(var attr in json){
  var iCur = 0;
  if(attr == 'opacity'){
  iCur = Math.round(parseFloat(getStyle(obj, attr))*100);
  }else{
  iCur = parseInt(getStyle(obj, attr));
  }
  var iSpeed = (json[attr] - iCur)/8;
  iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
  if(iCur != json[attr]){
  bStop = false;
  }  
  if(attr == 'opacity'){
  obj.style.filter = 'alpha(opacity='+(iCur+iSpeed)+')';
  obj.style.opacity = (iCur+iSpeed)/100;
  }else{
  obj.style[attr] = iCur + iSpeed + 'px';
  }  
 }
 if(bStop){
  clearInterval(obj.timer);
  if(fn){
  fn();
  }
 }
 }, 30);
}
</script>
</head>
<body>
<input id="btn1" type="button" value="运动"/>
<div id="div1"></div>
</body>
</html>

更多关于JavaScript运动效果相关内容可查看本站专题:《JavaScript运动效果与技巧汇总》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 Javascript
javascript每日必学之封装
Feb 23 Javascript
详解Javascript中DOM的范围
Feb 13 Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 Javascript
15 分钟掌握vue-next响应式原理
Oct 13 Javascript
微信小程序实现录音功能
Nov 22 Javascript
JavaScript实现点击出现子菜单效果
Feb 08 Javascript
jquery实现简单的遮罩层
Jan 08 #Javascript
javascript多物体运动实现方法分析
Jan 08 #Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 #Javascript
javascript匀速运动实现方法分析
Jan 08 #Javascript
js如何改变文章的字体大小
Jan 08 #Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 #Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 #Javascript
You might like
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
Python中的rjust()方法使用详解
2015/05/19 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
python 自定义对象的打印方法
2019/01/12 Python
Python Gitlab Api 使用方法
2019/08/28 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
应征英语教师求职信
2013/11/27 职场文书
2014庆六一活动方案
2014/03/02 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
青年文明号口号
2014/06/17 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL