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 Konami Code 实现代码
Jul 29 Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
JS获取当前日期时间并定时刷新示例
Mar 04 Javascript
JavaScript简单表格编辑功能实现方法
Apr 16 Javascript
JavaScript中用于生成随机数的Math.random()方法
Jun 15 Javascript
js实现tab切换效果实例
Sep 16 Javascript
详解javascript事件冒泡
Jan 09 Javascript
jquery判断对象是否为空并遍历对象的简单实例
Jul 26 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
Vue Element使用icon图标教程详解(第三方)
Feb 07 Javascript
微信小程序如何再次获取用户授权的方法
May 10 Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 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
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
JQuery 学习技巧总结
2010/05/21 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Unicode和Python的中文处理
2017/03/19 Python
python实现祝福弹窗效果
2019/04/07 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
python机器学习库xgboost的使用
2020/01/20 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
安全环保标语
2014/06/09 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers