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 相关文章推荐
跨域表单提交状态的变相判断代码
Nov 12 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
jQuery中需要注意的细节问题小结
Dec 06 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
Aug 31 Javascript
JavaScript 七大技巧(一)
Dec 13 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
json_decode 索引为数字时自动排序问题解决方法
Mar 28 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
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
python动态加载包的方法小结
2016/04/18 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Python模块相关知识点小结
2020/03/09 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
英文升职感谢信
2015/01/23 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python