Html5游戏开发之乒乓Ping Pong游戏示例(二)


Posted in HTML / CSS onJanuary 21, 2013

Headerandfooter
Html5引进了许多新的特性和改进,其中一项就是语义。Html5增加了新的元素来加强语义。我们现在只使用2个,header和footer。<header>标签定义文档的页眉(介绍信息),<footer>标签定义section或document的页脚。在典型情况下,该元素会包含创作者的姓名、文档的创作日期以及/或者联系信息。
[语义标签在HTML中提供有意义的信息,而不只是定义视觉效果。]

放置JavaScript代码的最佳位置
我们将JavaScript代码放置在</body>标签之前所有页面内容之后,而不是放置到<head></head>区域是有理由的。
通常,浏览器载入和渲染内容是从上到下的。如果将JavaScript代码放置到head区域,那么在将所有的JavaScript代码载入完成之前Html文档的内容是不会被载入的。实际上,所有的载入和渲染都是被阻塞的(blocked),如果浏览器加载页面中的JavaScript代码。这就是我们为什么将JavaScript代码放置在文档最后的理由,这样我们能够提供更高的性能。
在翻译这本书的时候,最新的jQuery版本是1.7(原话是:Atthetimeofwritingthisbook,thelatestjQueryversionis1.4.4。JQuery是有min版和开发版的,你可以随意选择)。这就是为什么jQuery文件在我们的代码示例中的名字是jquery-1.7.min.js。这个版本号也许会和你使用的不通,但是用法是一样的,除非jQuery有大的修改使新版本不再向下兼容。

页面准备好后运行我们的代码
我们需要在运行我们的JavaScript代码前确保页面已经准备就绪.否则,当我们尝试访问没有加载完的元素的时候我们会得到一个错误。jQuery提供给我们了一个方法来确保页面是被加载完成的。代码如下:

复制代码
代码如下:

jQuery(document).ready(function(){
//codehere.
});

实际上,我们只需要这样写:
复制代码
代码如下:

$(function(){
//codehere.
});

这个$标记是jQuery的简写。当我们calling(这个词是调用的意思,zhuangbility一下)$(something),我们实际上是在callingjQery(something).
$(function_callback)是readyevent(事件)的另一个简写。
它是和以下代码相同的:
复制代码
代码如下:

$(document).ready(function_callback);

同样,和下面的也相同:
复制代码
代码如下:

jQuery(ducument).ready(function_callbak);

小测验
1、那个位置最适合放置JavaScript代码?
a.<head>标签之前
b.插入到<head></head>元素中间。
c.<body>标签后
d.</body>标签前
创建PingPong游戏的元素
我们已经准备就绪,是时候创建PingPong游戏了。

动起来

1、我们将继续我们的jQuery安装示例,在编辑器里打开index.html。
2、然后,在body里用DIV节点创建游戏平台,在游戏平台中有2个拍子和一个球:
复制代码
代码如下:

<divid="game">
<divid="playground">
<divid="paddleA"class="paddle"></div>
<divid="paddleB"class="paddle"></div>
<divid="ball"></div>
</div>
</div>

3、我们现在构建了游戏的对象,现在给他们样式。放置一下代码到head元素中:
复制代码
代码如下:

<style>
#playground{
background:#e0ffe0;
width:400px;
height:200px;
position:relative;
overflow:hidden;
}
#ball{
background:#fbb;
position:absolute;
width:20px;
height:20px;
left:150px;
top:100px;
border-radius:10px;
}
.paddle{
background:#bbf;
left:50px;
top:70px;
position:absolute;
width:30px;
height:70px;
}
#paddleB{
left:320px;
}
</style>

4、在最后的部分,我们将JavaScript逻辑放置到jQuery引用之后。我们将它写到一个单独的文件里,因为我们的代码会越来越大。因此,我们需要创建一个名为html5games.pingpong.js在js文件夹里。
5、我们准备好了JavaScript文件后,需要将他们连接到我们的Html文件。放置以下代码在index.html文件的</body>标签前:
复制代码
代码如下:

<scriptsrc="js/jquery-1.7.min.js"></script>
<scriptsrc="js/html5games.pingpong.js"></script>

[译者友情提示:试试
复制代码
代码如下:

<scriptsrc="js/jquery-1.4.4.js"/>
<scriptsrc="js/html5games.pingpong.js"/>

你会发现按规范写会避免很多麻烦]
6、我们将游戏的逻辑放到html5games.pingpong.js。下面是我们现在唯一的逻辑,初始化球拍:
复制代码
代码如下:

//codeinside$(function(){}willrunaftertheDOMisloadedand
ready
$(function(){
$("#paddleB").css("top","20px");
$("#paddleA").css("top","60px");
});

7、现在让我们在浏览器中测试我们的成果。在浏览器中打开index.html文件我们应该看到先以下截图类似的画面:
Html5游戏开发之乒乓Ping Pong游戏示例(二) 
发生了什么?
在我们的游戏里有了2个球拍和1个球。我们还使用jQuery初始化了2个球拍的位置。
[今天就到这里,后面马上就是关于jQuery选择器和CSS函数的部分,有什么错误或疑问欢迎给我留言]
看见你的评论是我最大的动力!
HTML / CSS 相关文章推荐
CSS3 滤镜 webkit-filter详细介绍及使用方法
Dec 27 HTML / CSS
css3让div随鼠标移动而抖动起来
Feb 10 HTML / CSS
HTML5 Canvas实现文本对齐的方法总结
Mar 24 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
Sep 13 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
Jan 09 HTML / CSS
html5的新增的标签和废除的标签简要概述
Feb 20 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
Apr 25 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
Jun 25 HTML / CSS
使用phonegap进行本地存储的实现方法
Mar 31 HTML / CSS
HTML5 textarea高度自适应的两种方案
Apr 08 HTML / CSS
H5离线存储Manifest原理及使用
Apr 28 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
Jan 21 #HTML / CSS
HTML5中Canvas与SVG的画图原理比较
Jan 16 #HTML / CSS
html5 svg 中元素点击事件添加方法
Jan 16 #HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
Jan 09 #HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
Jan 09 #HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
Jan 09 #HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
Jan 09 #HTML / CSS
You might like
JavaScript arguments 多参传值函数
2010/10/24 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
JS判定是否原生方法
2013/07/22 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
7个JS基础知识总结
2014/03/05 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
python九九乘法表的实例
2017/09/26 Python
python实现发送邮件功能代码
2017/12/14 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
数学教学随笔感言
2014/02/17 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
求职自荐信怎么写
2014/03/06 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书