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的loading效果实现代码
Nov 05 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
May 24 Javascript
今天是星期几的4种JS代码写法
Sep 17 Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
jQuery实现鼠标可拖动调整表格列宽度
May 26 Javascript
jquery用offset()方法获得元素的xy坐标
Sep 06 Javascript
ExpressJS入门实例
Jan 14 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
Feb 05 Javascript
JS继承用法实例分析
Feb 05 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
vue-cli单页应用改成多页应用配置详解
Jul 14 Javascript
微信小程序渲染性能调优小结
Jul 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
php生成图片验证码
2015/06/09 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
python实现FTP循环上传文件
2020/03/20 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
大学自我鉴定范文
2013/12/26 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
驳回起诉裁定书
2015/05/19 职场文书
优质服务标语口号
2015/12/26 职场文书
建房合同协议书
2016/03/21 职场文书
mysql函数全面总结
2021/11/11 MySQL
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL
vue实现在data里引入相对路径
2022/06/05 Vue.js
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android