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 相关文章推荐
屏蔽Flash右键信息的js代码
Jan 17 Javascript
跟着JQuery API学Jquery 之三 筛选
Apr 09 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
javascript修改IMG标签的src问题
Mar 28 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
Mar 29 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
Vue和Flask通信的实现
May 19 Vue.js
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
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
Python之父谈Python的未来形式
2016/07/01 Python
Python端口扫描简单程序
2016/11/10 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
python数字类型math库原理解析
2020/03/02 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
HR喜欢的自荐信格式
2013/10/08 职场文书
创业计划书中包含的9个方面
2013/12/26 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
给校长的建议书
2014/03/12 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
同学聚会策划方案
2014/06/06 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
2014年青年教师工作总结
2014/12/17 职场文书