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 相关文章推荐
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
Feb 04 HTML / CSS
css3 2D图片转动样式可以扩充到Js当中
Apr 29 HTML / CSS
css3实现顶部社会化分享按钮示例
May 06 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
Oct 21 HTML / CSS
html5教程制作简单画板代码分享
Dec 04 HTML / CSS
浅谈基于HTML5的在线视频播放方案
Feb 18 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
Feb 19 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
May 13 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
Aug 20 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
Sep 09 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
Nov 26 HTML / CSS
html中两种获取标签内的值的方法
Jun 10 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
在PHP中操作Excel实例代码
2010/04/29 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
如何让你的JS代码更好看易读
2017/12/01 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python的keyword模块用法实例分析
2015/06/30 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
用Django写天气预报查询网站
2018/10/21 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Python中bisect的使用方法
2019/12/31 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
介绍一下Make? 为什么使用make
2016/07/31 面试题
历史专业毕业生的自我鉴定
2013/11/15 职场文书
房地产项目策划书
2014/02/05 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL