开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1727|回复: 3
收起左侧

[js/PHP求助] 原生js模拟div层弹性运动

[复制链接]

结帖率:33% (1/3)
发表于 2013-2-21 12:58:28 | 显示全部楼层 |阅读模式   上海市上海市
特性:
* 支持各项常数自定义
* 理论支持所有元素,只需修改style.width,你懂得
* 已知支持浏览器:chrome/firefox/IE7、8、9
  1. <html>
  2. <head>
  3. <meta http-equiv=Content-Type content="text/html;charset=utf-8">
  4. <script type="text/javascript">
  5. var a=900;//最大距离
  6. var b;//定时器变量
  7. var c=-1;//下次点击运动方向 -1负向运动 1正向运动
  8. var d=2; //反弹常量 数值越大弹性越小 取值d>1
  9. var e=-1; //当前运动方向
  10. var f=a; //当前位置
  11. var g=0; //已单向运动时间
  12. var h; //弹性体
  13. var i=15;//运动速度 数值越大,运动越慢

  14. function Bounce(id){
  15.         h=document.getElementById(id);
  16.         //终止未完成的运动
  17.         if(b)clearInterval(b);
  18.         //重置时间
  19.         g=0;
  20.         c=-1*c;        //下次点击运动方向改变
  21.         b=setInterval('move()',i);
  22. }
  23. function move(){
  24.         if(c==1){
  25.                 if(e==-1){
  26.                   if(f-(2*g-1)>0){
  27.                           f=f-(2*g-1);
  28.                           g++;
  29.                   }else{
  30.                           e=1;
  31.                           f=1;
  32.                           g++;
  33.                           g=parseInt(g/d);
  34.                           g=g%2==0?(g+1):g;
  35.                           if(g==3)clearInterval(b);
  36.                   }
  37.                 }else{
  38.                         if(g>0){
  39.                                 g--;
  40.                                 f=f+2*g-1;
  41.                         }else{
  42.                                 e=-1;
  43.                                 g=0;
  44.                         }
  45.                 }
  46.                 h.style.width=f.toString()+"px";
  47.         }else{
  48.                 if(e==1){
  49.                   if(f+(2*g-1)<a){
  50.                           f=f+(2*g-1);
  51.                           g++;
  52.                   }else{
  53.                           e=-1;
  54.                           f=a;
  55.                           g++;
  56.                           g=parseInt(g/d);
  57.                           g=g%2==0?(g+1):g;
  58.                           if(g==1)clearInterval(b);
  59.                   }
  60.                 }else{
  61.                         if(g>0){
  62.                                 g--;
  63.                                 f=f-(2*g-1);
  64.                         }else{
  65.                                 e=1;
  66.                                 g=0;
  67.                         }
  68.                 }
  69.                 h.style.width=f.toString()+"px";
  70.         }
  71. }
  72. </script>
  73. </head>
  74. <body>
  75.         <div style="color:red;font-size:12px;text-align:center;">
  76.         <div style="text-align:left;color:green;margin:50px 300px;">
  77.                 特性:
  78. * 支持各项常数自定义
  79. * 理论支持所有元素,只需修改style.width,你懂得
  80. * 已知支持浏览器:chrome/firefox/IE7、8、9
  81.         </div>
  82.     </div>
  83.         <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;"/>
  84.         <div style="width:900px;height:200px;margin:0px 200px;background-color:#e8e8e8;border:1px #ccc solid;" id="test" onClick="Bounce('test');"></div>
  85. </body>
  86. </html>
复制代码

结帖率:100% (11/11)
发表于 2013-2-21 13:02:57 | 显示全部楼层   河北省衡水市
素顏じ亦傾城ジ 发表于 2013-2-21 13:01
我支持你呀...

支持我 就把狗狗给我吧
回复 支持 反对

使用道具 举报

结帖率:100% (12/12)
发表于 2013-2-21 13:01:23 | 显示全部楼层   福建省厦门市
小岩锅锅 发表于 2013-2-21 12:59
我要去找和尚去

        我支持你呀...  
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)
发表于 2013-2-21 12:59:30 | 显示全部楼层   河北省衡水市
我要去找和尚去

点评

我支持你呀...   福建省厦门市  详情 回复 发表于 2013-2-21 13:01
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表