JS运动基础(四) 碰撞运动
碰撞运动
撞到目标点,速度反转
无重力的漂浮Div
速度反转
滚动条闪烁的问题
过界后直接拉回来
加入重力
反转速度的同时,减小速度
纵向碰撞,横向速度也减小
横向速度小数问题(负数)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute;}
</style>
<script> //碰撞运动 : 首先找到碰撞的临界点 , 再确定运动的方向 , 然后去改对应的速度(速度取反) window.onload = function(){
var oDiv = document.getElementById('div1'); var iSpeedX = 10;
var iSpeedY = 10; startMove(); function startMove(){
setInterval(function(){ var L = oDiv.offsetLeft + iSpeedX;
var T = oDiv.offsetTop + iSpeedY; if(T>document.documentElement.clientHeight - oDiv.offsetHeight){
T = document.documentElement.clientHeight - oDiv.offsetHeight;
iSpeedY *= -1;
}
else if(T<0){
T = 0;
iSpeedY *= -1;
} if(L>document.documentElement.clientWidth - oDiv.offsetWidth){
L = document.documentElement.clientWidth - oDiv.offsetWidth;
iSpeedX *= -1;
}
else if(L<0){
L = 0;
iSpeedX *= -1;
} oDiv.style.left = L + 'px';
oDiv.style.top = T + 'px';
},30);
} };
</script>
</head> <body>
<div id="div1"></div>
</body>
</html>
自由落体 :
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute;}
</style>
<script>
window.onload = function(){
var oInput = document.getElementById('input1');
var oDiv = document.getElementById('div1'); var timer = null;
var iSpeed = 0; oInput.onclick = function(){
startMove();
}; function startMove(){
clearInterval(timer);
timer = setInterval(function(){ iSpeed += 3; var T = oDiv.offsetTop + iSpeed; if(T > document.documentElement.clientHeight - oDiv.offsetHeight){
T = document.documentElement.clientHeight - oDiv.offsetHeight;
iSpeed *= -1; iSpeed *= 0.75; } oDiv.style.top = T + 'px'; },30);
} };
</script>
</head> <body>
<input type="button" value="开始运动" id="input1">
<div id="div1"></div>
</body>
</html>
JS运动基础(四) 碰撞运动的更多相关文章
- js运动基础2(运动的封装)
简单运动的封装 先从最简单的封装开始,慢慢的使其更丰富,更实用. 还是上一篇博文的代码,在此不作细说. 需求:点击按钮,让元素匀速运动. <!DOCTYPE html> <html ...
- JS运动---运动基础(缓冲运动)
(1)手风琴效果 分析: (2)基础缓冲运动 接下来取整 原因: px为计算机识别的最小单位,1px无法再往下拆分.所以css如果取值200.5px,解析时计算机会自动将其改为200px注意:这里的数 ...
- JS运动基础(三) 弹性运动
加减速运动速度不断增加或减少速度减小到负值,会向反方向运动 弹性运动在目标点左边,加速:在目标点右边,减速根据距离,计算加速度 带摩擦力的弹性运动弹性运动+摩擦力 弹性:速度 += (目标点 - 当前 ...
- JS运动基础(二) 摩擦运动、缓冲运动
摩擦运动: 逐渐变慢,最后停止 缓冲运动: 与摩擦力的区别:可以精确的停到指定目标点距离越远速度越大速度由距离决定速度=(目标值-当前值)/缩放系数Bug:速度取整值取整: iSpeed = iSpe ...
- Javascript 运动基础 01
JS运动基础 运动基础 让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动 速度不变 <s ...
- 第八节 JS运动基础
运动基础 让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在 ...
- JS学习-基础运动
多物体运动 多个物体用同一个函数时,函数里定义的定时器应该要每个物体对应一个定时器名称,不然会导致未完成运动就被关闭了,因为定时器名称一样,而开启定时器前会清除一下. obj.timer 多值同时运动 ...
- 学习blus老师js(6)--js运动基础
运动基础 一.匀速运动 运动框架 在开始运动时,关闭已有定时器 把运动和停止隔开(if/else) <!DOCTYPE HTML> <html> <head> &l ...
- JS运动---运动基础(匀速运动)
[一]运动基础 (2)基础运动案例 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
随机推荐
- hasOwnProperty
var Person = function(){ this.name = "nike"; this.age = "20" } var person = new ...
- centos6.6安装配置jboss7.1.1
Centos6.6下安装配置Jboss7.1.1 在了解jboss牛逼特性之后,我决定安装下jboss7.1.1试试 下面是安装包百度云盘链接: http://pan.baidu.com/s/1o6O ...
- simplexml_load_file 抑制警告的直接输出
$xml = simlexml_load_file($file, null, LIBXML_NOERROR); if (!is_object($this->xml)){ throw new Ex ...
- TextInfo
https://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase(v=vs.110).aspx Co ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的连接恢复和命令拦截
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第四篇:MVC程序中实体框架的连接恢复和 ...
- Entity Framework 教程
http://www.cnblogs.com/lsxqw2004/category/266012.html
- 《BI那点儿事》ETL中的关键技术
ETL(Extract/Transformation/Load)是BI/DW的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤. ...
- 点击datagrid弹出ldhdialog,点击弹出框的按钮,关闭且刷新datagrid
datagrid里的js这么写 //点击添加按钮触发 function superadd(title,addurl,gname,width,height) { gridname=gname; crea ...
- 获得省市 json 后台代码
string connString = ConfigurationManager.ConnectionStrings["connStr"].ToString(); SqlConne ...
- Web1.0、Web2.0、Web3.0的主要区别
Web1.0:以静态.单向阅读为主,网站内信息可以直接和其他网站信息进行交互,能通过第三方信息平台同时对多家网站信息进行整合使用. Web2.0:以分享为特征的实时网络,用户在互联网上拥有自己的数据, ...