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 相关文章推荐
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
js实现拖拽效果
Feb 12 Javascript
jquery插件validation实现验证身份证号等
Jun 04 Javascript
Grunt入门教程(自动任务运行器)
Aug 06 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
深入理解node.js http模块
Jan 24 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
SVG实现时钟效果
Jul 17 Javascript
基于Vue和Element-Ui搭建项目的方法
Sep 06 Javascript
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
基于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 读取shell管道传输过来的内容
2010/03/01 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
小结Python用fork来创建子进程注意事项
2014/07/03 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
应届实习生的自我评价范文
2014/01/05 职场文书
寄语十八大感言
2014/02/07 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
2019各种保证书范文
2019/06/24 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
vue3获取当前路由地址
2022/02/18 Vue.js