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 相关文章推荐
JavaScript 继承使用分析
May 12 Javascript
Jquery获得控件值的三种方法总结
Feb 13 Javascript
JS设置网页图片vspace和hspace属性的方法
Apr 01 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
js oncontextmenu事件使用详解
Mar 25 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
vue实现表格过滤功能
Sep 27 Javascript
Bootstrap实现模态框效果
Sep 30 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 Javascript
vue3使用vuedraggable实现拖拽功能
Apr 06 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安装攻略:常见问题解答(二)
2006/10/09 PHP
使用PHP获取网络文件的实现代码
2010/01/01 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python实现方便使用的级联进度信息实例
2015/05/05 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python进阶之自定义可迭代的类
2019/08/20 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
介绍一下Java中的Class类
2015/04/10 面试题
实习老师个人总结的自我评价
2013/09/28 职场文书
银行职员思想汇报
2013/12/31 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
环保建议书范文
2015/09/14 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
了解Redis常见应用场景
2021/06/23 Redis
分享Python获取本机IP地址的几种方法
2022/03/17 Python