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 相关文章推荐
共享自己写一个框架DreamScript
Jan 20 Javascript
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
May 21 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
Oct 14 Javascript
JS模式之单例模式基本用法
Jun 30 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 Javascript
vue-resource:jsonp请求百度搜索的接口示例
Nov 09 Javascript
ES6箭头函数和扩展实例分析
May 23 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 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
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
浅析PHP开发规范
2018/02/05 PHP
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
简单学习Python time模块
2016/04/29 Python
利用python发送和接收邮件
2016/09/27 Python
python去除字符串中的换行符
2017/10/11 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python随机模块random使用方法详解
2020/02/14 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
运行Python编写的程序方法实例
2020/10/21 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
给领导的检讨书
2014/02/16 职场文书
新闻人物通讯稿
2014/10/09 职场文书
2015年中秋节主持词
2015/07/30 职场文书
协议书格式模板
2016/03/24 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
mysql如何查询连续记录
2022/05/11 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL