js实现同一页面多个不同运动效果的方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js实现同一页面多个不同运动效果的方法。分享给大家供大家参考。具体分析如下:

要点一:

function getstyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}else{
return getComputedStyle(obj,false)[name];
}
}

从样式表中根据id和属性名取值。

要点二:

if(attr == "opacity"){
cur = Math.round(parseFloat(getstyle(obj,attr))*100);
}else{
cur = parseInt(getstyle(obj,attr));
}

如果设置的是透明度的值,因为有可能会是小数点,所以需要用parseFloat,然后有可能会有小数,用round方法四舍五入取整。

如果设置的非透明度值,用parseInt,可以只取数值部分

其它的注意点,前面几篇都有提到,此处不再赘述。

最后,上代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>无标题文档</title>
<style>
body,ul,li{margin:0; padding:0;}
#runs li{width:80px; height:80px; background:#06c;
list-style:none; margin:10px; border:1px solid #000;
filter:alpha(opacity=30); opacity:0.3;}
</style>
<script>
window.onload = function(){
 var runs = document.getElementById("runs");
 var runs_li = runs.getElementsByTagName("li");
  runs_li[0].onmouseover = function(){
   startrun(this,"width",300);
  }
  runs_li[0].onmouseout = function(){
   startrun(this,"width",80);
  }
  runs_li[1].onmouseover = function(){
   startrun(this,"height",300);
  }
  runs_li[1].onmouseout = function(){
   startrun(this,"height",80);
  }
  runs_li[2].onmouseover = function(){
   startrun(this,"fontSize",50);
  }
  runs_li[2].onmouseout = function(){
   startrun(this,"fontSize",14);
  }
  runs_li[3].onmouseover = function(){
   startrun(this,"opacity",100);
  }
  runs_li[3].onmouseout = function(){
   startrun(this,"opacity",30);
  }
}
function startrun(obj,attr,target){
 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);
  }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);
}
function getstyle(obj,name){
 if(obj.currentStyle){
  return obj.currentStyle[name];
 }else{
  return getComputedStyle(obj,false)[name];
 }
}
</script>
</head>
<body>
<ul id="runs">
 <li style="top:0">1</li>
 <li style="top:90px;">2</li>
 <li style="top:180px;">3</li>
 <li style="top:270px;">4</li>
</ul>
</body>
</html>

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

Javascript 相关文章推荐
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
Jan 22 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
jQuery 属性选择器element[herf*='value']使用示例
Oct 20 Javascript
js实现目录定位正文示例
Nov 14 Javascript
JavaScript获取flash对象与网上的有所不同
Apr 21 Javascript
浅谈javascript中createElement事件
Dec 05 Javascript
JS实现的跨浏览器解析XML文件实例
Jun 21 Javascript
jQuery密码强度验证控件使用详解
Jan 05 Javascript
js实现截图保存图片功能的代码示例
Feb 16 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 #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
You might like
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
使用angular写一个hello world
2015/01/23 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
浅谈python之新式类
2018/08/12 Python
代码详解django中数据库设置
2019/01/28 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
python 将Excel转Word的示例
2021/03/02 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
super()与this()的区别
2016/01/17 面试题
建筑毕业生自我鉴定
2013/10/18 职场文书
出纳会计岗位职责
2014/03/12 职场文书
提档介绍信范文
2015/10/22 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers