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 模拟用户单击事件
Dec 31 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 Javascript
JS实现图片高亮展示效果实例
Nov 24 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
浅析JavaScript动画模拟拖拽原理
Dec 09 Javascript
Jquery-data的三种用法
Apr 18 jQuery
全面解析Node.js 8 重要功能和修复
Jun 02 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 Javascript
layUI的验证码功能及校验实例
Oct 25 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
JavaScript 创建对象
2009/07/17 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
Python中字典的基础知识归纳小结
2015/08/19 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
详解python中的模块及包导入
2019/08/30 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
python实现AdaBoost算法的示例
2020/10/03 Python
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
垃圾回收的优点和原理
2014/05/16 面试题
自荐信怎么写呢?
2013/12/09 职场文书
大型活动策划方案
2014/01/12 职场文书
领导视察欢迎词
2014/01/15 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书