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 相关文章推荐
js实现的日期操作类DateTime函数代码
Mar 16 Javascript
jquery新的绑定事件机制on方法的使用方法
Apr 15 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
js is_valid_filename验证文件名的函数
Jul 19 Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
Sep 17 Javascript
JS闭包原理与应用经典示例
Dec 20 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
JavaScript实现商品评价五星好评
Nov 30 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
php中call_user_func函数使用注意事项
2014/11/21 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
php curl常用的5个经典例子
2017/01/20 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Python实现word2Vec model过程解析
2019/12/16 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
销售人员获奖感言
2014/02/05 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
社会实践心得体会范文
2016/01/14 职场文书
小学思想品德教学反思
2016/02/24 职场文书
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL