js实现类似jquery里animate动画效果的方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js实现类似jquery里animate动画效果的方法。分享给大家供大家参考。具体分析如下:

该实例可实现鼠标移上,先宽度变化,再高度变化,最后透明度变化,鼠标移出,再依次变回去的效果。

要点一:

startrun(obj,attr,target,fn)
box.onmouseover = function(){
startrun(box,"width",200,function(){
startrun(box,"height",200,function(){
startrun(box,"opacity","100")
});
});
}

如上面,函数也可以做为参数使用,就可以达到先执行某个动作,再执行某个动作的效果了。

要点二:

if(cur == target){
clearInterval(obj.timer);
if(fn){
fn();
}
}

当运动到达目标点,关闭定时器,然后就可以执行新的函数了。

最后,上代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>无标题文档</title>
<style>
<!--
body{margin:0; padding:0; font:12px/1.5 arial;}
#box{width:100px; height:100px; position:absolute;
background:#06c; left:0;filter:alpha(opacity=30); opacity:0.3;}
-->
</style>
<script>
<!--
function getstyle(obj,name){
 if(obj.currentStyle){
  return obj.currentStyle[name];
 }else{
  return getComputedStyle(obj,false)[name];
 }
}
window.onload = function(){
 var box = document.getElementById("box");
 box.onmouseover = function(){
  startrun(box,"width",200,function(){
   startrun(box,"height",200,function(){
    startrun(box,"opacity","100")
   });
  });
 }
 box.onmouseout = function(){
  startrun(box,"height",100,function(){
   startrun(box,"width",100,function(){
    startrun(box,"opacity","30");
   });
  });
 }
}
function startrun(obj,attr,target,fn){
 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 = (target-cur)/8;
  speed = speed>0?Math.ceil(speed):Math.floor(speed);
  
  if(cur == target){
   clearInterval(obj.timer);
   if(fn){
    fn();
   }
  }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="box">
</div>
</body>
</html>

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

Javascript 相关文章推荐
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
jquery.post用法之type设置问题
Feb 24 Javascript
js实现checkbox全选、不选与反选的方法
Feb 09 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
Feb 28 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
angularjs实现时间轴效果的示例代码
Nov 29 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
Dec 07 Javascript
微信小程序滑动选择器的实现代码
Aug 10 Javascript
深入学习Vue nextTick的用法及原理
Oct 08 Javascript
Vuex实现数据增加和删除功能
Nov 11 Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 #Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 #Javascript
js简单的点击返回顶部效果实现方法
Apr 10 #Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 #Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 #Javascript
JavaScript 变量、作用域及内存
Apr 08 #Javascript
JavaScript Function函数类型介绍
Apr 08 #Javascript
You might like
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python实现爬取百度图片的方法示例
2019/07/06 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
Python continue语句实例用法
2020/02/06 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
详解anaconda安装步骤
2020/11/23 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
Python创建自己的加密货币的示例
2021/03/01 Python
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
PHP面试题附答案
2015/11/28 面试题
成品仓管员工作职责
2013/12/29 职场文书
酒鬼酒广告词
2014/03/21 职场文书
电钳工人个人求职信
2014/05/10 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
消防安全宣传标语
2014/06/07 职场文书
毕业生找工作自荐书
2014/06/30 职场文书