参考:

1、JS 元素位置 设置元素位置:http://blog.sina.com.cn/s/blog_a2ec891e01011v9f.html

2、用JavaScript修改CSS属性

3、使用JavaScript动态更改CSS样式:http://www.jianshu.com/p/0260cddff86a、http://kimi.it/289.html、http://www.jb51.net/article/65625.htm

效果图:

思路:

1、绘制的静态小球。

2、定义小球的四种飞行状态。

3、初始化小球状态,定义切换状态的条件。

代码:

1、初步实现。。。缺点是无法根据屏幕大小调整“墙”的位置。。还需要小改一下。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dynamic Ball</title>
<style>
html {
background: #F2F2F2;
} p {
text-align: center;
} .ball {
width: 100px;
height: 100px; background: black;
border-radius: 50%; position: absolute;
left: 100px;
top: 300px;
}
</style>
</head>
<body>
<p>Dynamic Ball</p>
<div class="ball"></div>
<script>
function setPosition(x , y) {
target.style.left = x + "px";
target.style.top = y + "px";
}
var target = document.querySelector('.ball');
// 定义一对变量来管理target的位置
var X = Math.random()*1024;
var Y = Math.random()*768;
// 定义一个变量管理target的飞行状态
var STATE = 1;
function f1() {
X++;
Y++;
STATE = 1;
setPosition(X, Y);
}
function f2() {
X--;
Y++;
STATE = 2;
setPosition(X, Y);
}
function f3() {
X++;
Y--;
STATE = 3;
setPosition(X, Y);
}
function f4() {
X--;
Y--;
STATE = 4;
setPosition(X, Y);
}
function checkDirection() {
if (X > 1024 && STATE == 1) STATE = 2;
if (X > 1024 && STATE == 3) STATE = 4;
if (X < 0 && STATE == 4) STATE = 3;
if (X < 0 && STATE == 2) STATE = 1;
if (Y > 768 && STATE == 1) STATE = 3;
if (Y > 768 && STATE == 2) STATE = 4;
if (Y < 0 && STATE == 4) STATE = 2;
if (Y < 0 && STATE == 3) STATE = 1;
if (STATE == 1) f1();
if (STATE == 2) f2();
if (STATE == 3) f3();
if (STATE == 4) f4();
}
function start() {
setInterval("checkDirection()", 10);
}
setPosition(X, Y);
start();
// target.f1 target.f2 target.f3 target.f4
// target.setPosition(randomX, randomY);
// target.start();
</script>
</body>
</html>

2、改。参考:http://www.cnblogs.com/Henllyee/archive/2008/04/20/1162517.html

<script>
var screenWidth = document.documentElement.clientWidth;
var screenHeight = document.documentElement.clientHeight;
function setPosition(x , y) {
target.style.left = x + "px";
target.style.top = y + "px";
}
var target = document.querySelector('.ball');
// 定义一对变量来管理target的位置
var X = Math.random()*screenWidth;
var Y = Math.random()*screenHeight;
// 定义一个变量管理target的飞行状态
var STATE = 1;
function f1() {
X++;
Y++;
STATE = 1;
setPosition(X, Y);
}
function f2() {
X--;
Y++;
STATE = 2;
setPosition(X, Y);
}
function f3() {
X++;
Y--;
STATE = 3;
setPosition(X, Y);
}
function f4() {
X--;
Y--;
STATE = 4;
setPosition(X, Y);
}
function checkDirection() {
screenWidth = document.documentElement.clientWidth;
screenHeight = document.documentElement.clientHeight;
if (X > screenWidth && STATE == 1) STATE = 2;
if (X > screenWidth && STATE == 3) STATE = 4;
if (X < 0 && STATE == 4) STATE = 3;
if (X < 0 && STATE == 2) STATE = 1;
if (Y > screenHeight && STATE == 1) STATE = 3;
if (Y > screenHeight && STATE == 2) STATE = 4;
if (Y < 0 && STATE == 4) STATE = 2;
if (Y < 0 && STATE == 3) STATE = 1;
if (STATE == 1) f1();
if (STATE == 2) f2();
if (STATE == 3) f3();
if (STATE == 4) f4();
}
function start() {
setInterval("checkDirection()", 10);
}
setPosition(X, Y);
start();
// target.f1 target.f2 target.f3 target.f4
// target.setPosition(randomX, randomY);
// target.start();
</script>

最新文章

  1. 复习sql server
  2. 查看死锁 的存储过程 ,工具存储过程 sp_who_lock
  3. gulp/grunt和browserify/webpack的区别
  4. C#中文和UNICODE编码转换
  5. background-size的两个属性:cover和contain
  6. iOS 检查版本号的代码
  7. HDOJ1518Square 深搜
  8. 【iOS开发】collectionView 瀑布流实现
  9. MYSQL的日志与备份还原
  10. 折线图hellocharts的使用说明
  11. SQL-50 将employees表中的所有员工的last_name和first_name通过(&#39;)连接起来
  12. LeetCode 797. All Paths From Source to Target
  13. nodejs websocket
  14. Python学习笔记-解释器和中文编码
  15. maven package,clean,install,compile命令
  16. Spark DataSet 、DataFrame 一些使用示例
  17. Jenkins自动化构建(二)众多问题
  18. bzoj 3237 连通图 - 并查集 - 线段树
  19. 直接端口打印 支持USB接口的打印机吗?解决办法
  20. Jmeter(十八)_Ubuntu部署jmeter与ant

热门文章

  1. jQuery 事件的命名空间的含义
  2. CentOS 安装 dotnetcore
  3. APP测试瞎话
  4. 哈哈哈 迫于c#的语言特性java才加的注解
  5. SQLSERVER 创建索引实现代码
  6. 第二课作业——redis常用命令
  7. ubuntu-16.04.2-server-amd64.iso
  8. DKLang Translation Editor
  9. JS和CSS的初步入门(JS可以取得所有p的内容并显示)
  10. settings配置与model优化