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 相关文章推荐
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
Aug 01 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
使用AOP改善javascript代码
May 01 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
Feb 19 Javascript
BootStrap 动态表单效果
Jun 02 Javascript
Angularjs实现上传图片预览功能
Sep 01 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
May 10 Javascript
在vue中获取token,并将token写进header的方法
Sep 26 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
Rust中的Struct使用示例详解
Aug 14 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
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
React实现全选功能
2020/08/25 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
Python操作MySQL简单实现方法
2015/01/26 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
python实现多层感知器
2019/01/18 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
安全生产检查通报
2014/01/29 职场文书
青年文明号服务承诺
2014/03/31 职场文书
nginx rewrite功能使用场景分析
2022/05/30 Servers