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 相关文章推荐
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
node.js中使用socket.io制作命名空间
Dec 15 Javascript
js函数与php函数的区别实例浅析
Jan 12 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
无缝滚动的简单实现代码(推荐)
Jun 07 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
May 04 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 Javascript
使用Jenkins部署React项目的方法步骤
Mar 11 Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 Javascript
jquery实现掷骰子小游戏
Oct 24 jQuery
基于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
全国中波电台频率表
2020/03/11 无线电
php封装的page分页类完整实例
2016/10/18 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
js 调整select 位置的函数
2008/02/21 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
Python实现的简单万年历例子分享
2014/04/25 Python
Python下的twisted框架入门指引
2015/04/15 Python
简单说明Python中的装饰器的用法
2015/04/24 Python
python构建自定义回调函数详解
2017/06/20 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
诚信考试承诺书
2014/03/27 职场文书
房地产活动策划方案
2014/05/14 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js