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 相关文章推荐
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
js实现表单多按钮提交action的处理方法
Oct 24 Javascript
jQuery Mobile页面返回不需要重新get
Apr 26 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
js实现消息滚动效果
Jan 18 Javascript
Angular 作用域scope的具体使用
Dec 11 Javascript
浅谈node模块与npm包管理工具
Jan 03 Javascript
vue-cli常用设置总结
Feb 24 Javascript
Vue中使用canvas方法总结
Feb 12 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
May 09 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 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写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
Javascript非构造函数的继承
2015/04/27 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
Python中获取对象信息的方法
2015/04/27 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
python用户管理系统
2018/03/13 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
python动态进度条的实现代码
2019/07/03 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
农业大学毕业生的个人自我评价
2013/10/11 职场文书
毕业生求职简历的自我评价
2013/10/23 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
数学教研活动总结
2014/07/02 职场文书
工作作风承诺书
2014/08/30 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js