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 相关文章推荐
DEFER怎么用?
Jul 01 Javascript
拖动一个HTML元素
Dec 22 Javascript
javascript Array.remove() 数组删除
Aug 06 Javascript
Js获取数组最大和最小值示例代码
Oct 29 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 Javascript
手机软键盘弹出时影响布局的解决方法
Dec 15 Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
Apr 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如何将日志写进syslog
2013/06/28 PHP
php学习笔记之基础知识
2014/11/08 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
ES6学习教程之模板字符串详解
2017/10/09 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
门面房租房协议书
2014/08/20 职场文书
表扬信格式模板
2015/05/05 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
矛盾论读书笔记
2015/06/29 职场文书
地震捐款简报
2015/07/21 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python