纯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的一种模块模式
Mar 22 Javascript
window.location.hash 使用说明
Nov 08 Javascript
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
jQuery简单tab切换效果实现方法
Apr 08 Javascript
如何用javascript计算文本框还能输入多少个字符
Jul 29 Javascript
跟我学习javascript解决异步编程异常方案
Nov 23 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
Feb 26 Javascript
vue iview实现动态路由和权限验证功能
Apr 17 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
纯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
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
基于node实现websocket协议
2016/04/25 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
layui的select联动实现代码
2019/09/28 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python中条件判断语句的简单使用方法
2015/08/21 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
tensorboard显示空白的解决
2020/02/15 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
如何用Python徒手写线性回归
2021/01/25 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
简述DNS进行域名解析的过程
2013/12/02 面试题
幼儿园托班开学寄语
2014/01/18 职场文书
2014元旦晚会策划方案
2014/02/19 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
遗失说明具结保证书
2015/02/26 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
python数字图像处理实现图像的形变与缩放
2022/06/28 Python