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 相关文章推荐
jquery必须知道的一些常用特效方法及使用示例(整理)
Jun 24 Javascript
js中window.open打开一个新的页面
Aug 10 Javascript
JavaScript静态类型检查工具FLOW简介
Jan 06 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
简单的渐变轮播插件
Jan 12 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
详解js中let与var声明变量的区别
Apr 05 Javascript
js实现圆形显示鼠标单击位置
Feb 11 Javascript
Javascript如何实现双指控制图片功能
Feb 25 Javascript
javascript实现页面的实时时钟显示示例
Aug 06 Javascript
vue封装数字翻牌器
Apr 20 Vue.js
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 has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
js函数内变量的作用域分析
2015/01/12 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
JS判断数组那点事
2017/10/10 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
Python回调函数用法实例详解
2015/07/02 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python开发入门——set的使用
2020/09/03 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Python collections模块的使用方法
2020/10/09 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
英文版区域经理求职信
2013/10/23 职场文书
幼儿园实习自我鉴定
2013/12/15 职场文书
警校毕业生自我评价
2014/04/06 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
2014年医院工作总结
2014/11/20 职场文书
2014年学前班工作总结
2014/12/08 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript