JS运动相关知识点小结(附弹性运动示例)


Posted in Javascript onJanuary 08, 2016

本文总结了JS运动相关知识点。分享给大家供大家参考,具体如下:

1.多物体运动框架所有东西都不能共用

2.document.title输出频率不能太高

3.在写JS时尽量避免写小数,因为计算机内部都是模拟的,而不是实际存储的

如:0.07*100 在JS运算里不是为7

var a=3;
var b=3.00000000000000000001;
alert(a=b);

输出的结果却是true

4.写程序思考时先思考一般,再思考特殊,写程序是,先排除特殊,然后写一般

if(特殊1)
{}
else if(特殊2)
{}
else
{
 一般
}

5.数组既可以用for 循环也可以用for..in循环,因为for循环比较可控 ,所以用for循环会比较的好

对象(json)的话只能用for..in循环

6.在CSS中*{margin:0;padding:0;}这样写性能并不怎么好

7.布局转换,先给每个元素设置left,top值    ,,全部设置好了以后再 给每个元素position设置absolute 并且margin清零

8.IE7中用UL进行运动时会顿卡,这时候可以用DIV试试看

9.考虑摩擦力因素 iSpeed*0.95(小数的大小取决于摩擦力的大小)

10. 加速度,离目标越远加速度越大 离目标越近越小(iTarget-obj.offsetLeft)/50

11.加速度和摩擦力比较好的组合是5和0.7  即iSpeed+=(iTarget-obj.offsetLeft)/5 ; iSpeed*=0.7;

12.当程序出问题的时候,思考为什么会出现这个问题

13.弹性运动在样式不能过界的时候不能用

14.弹性运动停止条件:距离过近   速度过小

15.分析要围观分析,因为样式会自动的忽略小数,因此,为了不让丢失的小数积少成多,可以设置一个变量来存储,然后赋给样式。 obj.style.left=left+"px";

附:JavaScript弹性运动实例

运动原理:加速运动+减速运动+摩擦运动;

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; left:0; top:50px;}
</style>
<script>
window.onload = function()
{
 var oBtn = document.getElementById('btn1');
 var oDiv = document.getElementById('div1');
 oBtn.onclick = function()
 {
  startMove(oDiv, 300);
 };
};
var iSpeed = 0;
var left = 0;
function startMove(obj, iTarget)
{
 clearInterval(obj.timer);
 obj.timer = setInterval(function(){
  iSpeed += (iTarget - obj.offsetLeft)/5;
  iSpeed *= 0.7;
  left += iSpeed;
  if(Math.abs(iSpeed)<1 && Math.abs(left-iTarget)<1){
   clearInterval(obj.timer);
   obj.style.left = iTarget + 'px';
  }else{
   obj.style.left = obj.offsetLeft + iSpeed + 'px';
  }
 }, 30);
}
</script>
</head>
<body>
<input id="btn1" type="button" value="运动" />
<div id="div1"></div>
<div style="width:1px; height:300px; background:black; position:absolute; top:0; left:300px; ">
</div>
</body>
</html>

更多关于JavaScript运动效果相关内容可查看本站专题:《JavaScript运动效果与技巧汇总》

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

Javascript 相关文章推荐
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
Mar 24 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
Jan 15 Javascript
js自动下载文件到本地的实现代码
Apr 28 Javascript
原生js操作checkbox用document.getElementById实现
Oct 12 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
Mar 27 Javascript
js中this的用法实例分析
Jan 10 Javascript
javascript日期比较方法实例分析
Jun 17 Javascript
微信小程序 开发经验整理
Feb 15 Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
ajax前台后台跨域请求处理方式
Feb 08 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
深入解读VUE中的异步渲染的实现
Jun 19 Javascript
基于jquery实现图片上传本地预览功能
Jan 08 #Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 #Javascript
jQuery实现本地预览上传图片功能
Jan 08 #Javascript
jQuery自定义滚动条完整实例
Jan 08 #Javascript
javascript正则表达式定义(语法)总结
Jan 08 #Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 #Javascript
jQuery实现的鼠标滑过弹出放大图片特效
Jan 08 #Javascript
You might like
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
两个强悍的php 图像处理类1
2009/06/15 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
php短信接口代码
2016/05/13 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
javascript中this的四种用法
2015/05/11 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
Python面向对象之继承代码详解
2018/01/29 Python
Python多继承原理与用法示例
2018/08/23 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
软件测试面试题
2015/10/21 面试题
一道Delphi面试题
2016/10/28 面试题
建筑经济管理专业求职信分享
2014/01/06 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
简历自我评价模板
2015/03/11 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis