纯js模拟div层弹性运动的方法


Posted in Javascript onJuly 27, 2015

本文实例讲述了纯js模拟div层弹性运动的方法。分享给大家供大家参考。具体如下:

特性:

1. 支持各项常数自定义
2. 理论支持所有元素,只需修改style.width,你懂得
3. 已知支持浏览器:chrome/firefox/IE7、8、9

<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<script type="text/javascript">
var a=900;//最大距离
var b;//定时器变量
var c=-1;//下次点击运动方向 -1负向运动 1正向运动
var d=2; //反弹常量 数值越大弹性越小 取值d>1
var e=-1; //当前运动方向
var f=a; //当前位置
var g=0; //已单向运动时间
var h; //弹性体
var i=15;//运动速度 数值越大,运动越慢
function Bounce(id){
  h=document.getElementById(id);
  //终止未完成的运动
  if(b)clearInterval(b);
  //重置时间
  g=0;
  c=-1*c; //下次点击运动方向改变
  b=setInterval('move()',i);
}
function move(){
  if(c==1){
    if(e==-1){
     if(f-(2*g-1)>0){
       f=f-(2*g-1);
       g++;
     }else{
       e=1;
       f=1;
       g++;
       g=parseInt(g/d);
       g=g%2==0?(g+1):g;
       if(g==3)clearInterval(b);
     }
    }else{
      if(g>0){
        g--;
        f=f+2*g-1;
      }else{
        e=-1;
        g=0;
      }
    }
    h.style.width=f.toString()+"px";
  }else{
    if(e==1){
     if(f+(2*g-1)<a){
       f=f+(2*g-1);
       g++;
     }else{
       e=-1;
       f=a;
       g++;
       g=parseInt(g/d);
       g=g%2==0?(g+1):g;
       if(g==1)clearInterval(b);
     }
    }else{
      if(g>0){
        g--;
        f=f-(2*g-1);
      }else{
        e=1;
        g=0;
      }
    }
    h.style.width=f.toString()+"px";
  }
}
</script>
</head>
<body>
  <div style="color:red;font-size:12px;text-align:center;">
    <div style="text-align:left;color:green;margin:50px 300px;">
      特性:<br> * 支持各项常数自定义 <br> * 理论支持所有元素,只需修改style.width,你懂得<br> * 已知支持浏览器:chrome/firefox/IE7、8、9
    </div>
  </div>
  <input type="button" value="click me" onClick="Bounce('test');" style="text-align:center;border:1px #ccc solid;padding:5px 10px;margin:0px 200px 100px 200px;"/>
  <div style="width:900px;height:200px;margin:0px 200px;background-color:#e8e8e8;border:1px #ccc solid;" id="test" onClick="Bounce('test');"></div>
</body>
</html>

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

Javascript 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
表单序列化与jq中的serialize使用示例
Feb 21 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
React Native悬浮按钮组件的示例代码
Apr 05 Javascript
javascript触发模拟鼠标点击事件
Jun 26 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
Jul 27 #Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 #Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 #Javascript
javascript简单实现滑动菜单效果的方法
Jul 27 #Javascript
JavaScript判断IE版本型号
Jul 27 #Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 #Javascript
readonly和disabled属性的区别
Jul 26 #Javascript
You might like
用PHP实现小型站点广告管理
2006/10/09 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
Symfony的安装和配置方法
2016/03/17 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
简单的js分页脚本
2009/05/21 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
javascript实现画板功能
2020/04/12 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python标准库shutil用法实例详解
2018/08/13 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
Python函数和模块的使用总结
2019/05/20 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
闭幕式主持词
2014/04/02 职场文书
访谈节目策划方案
2014/05/15 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
详解非极大值抑制算法之Python实现
2021/06/28 Python