前言

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

上一篇博客中,小编给大家展示了jQuery的一大优势,自定义插件。相信这个功能让各位都跃跃欲试,想要制作一个自己的插件了吧!在这里小编祝贺大家在成为大牛的路上向前跨了一步!!今天,小编就实现一个小游戏带大家领略jQuery的最大大优势,相比于原生的简洁,也就是“write Less,Do More”。

一、原生JS实现剪刀石头布游戏功能

话不多说,直接来代码!

HTML:

 <body>

         <div id="body">
<div id="tips">
请选择
</div> <div id="imgs">
<img src="插件/img/jiandao.png" id="jiandao" onclick="jianDao()"class="img1"/>
<img src="插件/img/shitou.png" id="shitou" onclick="shiTou()"class="img1"/>
<img src="插件/img/bu.png" id="bu" onclick="bU()" class="img1"/>
</div> <div id="jieguo">
<div class="jieguo">
<div>您选择了</div>
<img src="插件/img/daiding.png" id="myImg" />
</div> <div class="pk">PK</div> <div class="jieguo">
<div>系统选择了</div>
<img src="插件/img/daiding.png" id="computer" />
</div>
</div> <div id="score">
等待结果中....
</div> <div id="scoreFen">
<span>00</span>:<span>00</span>
</div>
</div>
</body>

css:

 <style type="text/css">
*{
margin: 0px;
padding: 0px;
} #body{
width: 100%;
height: 700px;
max-width: 500px;
margin: 0 auto;
background-color: #FAE738;
overflow: hidden;
} #tips{
margin-top: 40px;
text-align: center;
color: white;
font-size: 36px;
font-weight: bold;
} #imgs{
width: 90%;
margin: 20px auto;
display: flex;
justify-content: space-around;
} #jieguo{
width: 90%;
margin: 30px auto;
display: flex;
justify-content: space-around;
} #jieguo .jieguo div{
height: 30px;
width: 89px;
line-height: 30px;
text-align: center;
color: white;
} #jieguo .jieguo img{
height: 89px;
} #jieguo .pk{
height: 120px;
line-height: 120px;
font-size: 48px;
font-weight: bold;
} #score,#scoreFen{
text-align: center;
font-size: 24px;
color: red;
padding-top: 10px;
} </style>

js:

 <script src="JS/jquery-3.1.1.js" type="text/javascript"></script>
   <script type="text/javascript">

         var jiandao = document.getElementById("jiandao");
var shitou = document.getElementById("shitou");
var bu = document.getElementById("bu");
var myImg = document.getElementById("myImg");
var computer = document.getElementById("computer");
var score = document.getElementById("score");
var scoreFen = document.getElementById("scoreFen"); var myScore=0,comScore=0; var imgs = ["插件/img/jiandao.png","插件/img/shitou.png","插件/img/bu.png"];
console.log(imgs[0]);
jiandao.onclick = function(){
var imgSrc = jiandao.getAttribute("src"); myImg.setAttribute("src",imgSrc);
checkImg(imgSrc);
} shitou.onclick = function(){
var imgSrc = shitou.getAttribute("src");
myImg.setAttribute("src",imgSrc);
checkImg(imgSrc);
} bu.onclick = function(){
var imgSrc = bu.getAttribute("src");
myImg.setAttribute("src",imgSrc);
checkImg(imgSrc);
} function checkImg(imgSrc){
var myIndex = imgs.indexOf(imgSrc);
var intervalId = setInterval(function(){
var num = parseInt(Math.random()*3);
computer.setAttribute("src",imgs[num]); },20); setTimeout(function(){
clearInterval(intervalId);
var comSrc = computer.getAttribute("src");
var comIndex = imgs.indexOf(comSrc);
if(myIndex==comIndex){
score.innerHTML = "平局!再战一轮吧!";
}else if(myIndex==0&&comIndex==2
|| myIndex==1&&comIndex==0
|| myIndex==2&&comIndex==1){
score.innerHTML = "赢啦!继续虐他吧!";
myScore++;
}else{
score.innerHTML = "输啦!继续努力吧!";
comScore++;
}
myScore = (myScore+"").length<2?"0"+myScore:myScore+"";
comScore = (comScore+"").length<2?"0"+comScore:comScore+""; scoreFen.firstElementChild.innerHTML = myScore;
scoreFen.lastElementChild.innerHTML = comScore; },400);
} </script>

结果:

二、jQuery实现剪刀石头布

HTML代码与css代码请看上栗,毕竟只是实现功能的方式不用,布局是一样一样滴!

jQuery:

 <script type="text/javascript">
$("#imgs>img").click(function(){
checkImg($(this).attr("src"));
}); var imgs = ["插件/img/jiandao.png","插件/img/shitou.png","插件/img/bu.png"];
function checkImg(imgSrc){
$("#myImg").attr("src",imgSrc);
var id = setInterval(function(){
var num = parseInt(Math.random()*3);
$("#computer").attr("src",imgs[num]);
},20); setTimeout(function(){
clearInterval(id);
var my = imgs.indexOf(imgSrc);
var com = imgs.indexOf($("#computer").attr("src"));
if(my==0&&com==2 || my==1&&com==0 || my==2&&com==1){
$("#score").html("恭喜!您赢啦!");
var mf = parseInt($("#scoreFen span:eq(0)").text())+1;
mf = mf<10 ? "0"+mf : mf;
$("#scoreFen span:eq(0)").text(mf);
}else if(my==0&&com==0 || my==1&&com==1 || my==2&&com==2){
$("#score").html("平局!再战一轮吧!");
}else{
$("#score").html("哈哈哈哈你输啦!!!");
var cf = parseInt($("#scoreFen span:eq(1)").text())+1;
cf = cf<10 ? "0"+cf : cf;
$("#scoreFen span:eq(1)").text(cf);
}
},500);
}
</script>

结果:

三、JS&jQuery

大家从上边的例子也发现了,功能的实现上,原生用了60多行代码,而jQuery则用了30多行代码。少了将近的一般,这只是一个小游戏就有这么大的差距。

现在,小编带大家分析一下其中的原因:

3.1在语法上

1、jQuery在语法上,必须使用jQuery必须先导入JQuery.x.x.x.js文件;这个是必须的,小编就不多说了;

2、JQuery中的选择器:
$("选择器").函数();

原生中:获取节点要用.document.getElementById();

从这里就发现了吧,jQuery的简洁,这也是jQuery相对于原生最体现简洁的地方;

大家从上栗来看个例子:实现图片点击事件,并在下方改变更换图片,也就是替换图片url地址:

JS:

 bu.onclick = function(){
var imgSrc = bu.getAttribute("src");
myImg.setAttribute("src",imgSrc);
checkImg(imgSrc);
}

jQuery:

 function checkImg(imgSrc){
$("#myImg").attr("src",imgSrc);
}

3.2原生JS对象与JQuery对象

①使用$("")选中的对象是jQuery对象,只能调用jQuery的函数,而不能使用元素js的事件与函数;
    $("#p").click();  √
    $("#p").onclick = function(){}; ×
    
    解释:$("#p")是jQuery对象,.onclick是原生JS事件
    
    同理,使用document.getElement系列获取的原生JS对象,也不能使用jQuery相关函数。
    
    ②原生JS对象转为jQuery对象
    可以使用$()包裹原生JS对象即可转为jQuery对象。
    
    var p = document.getElementsByTagName("p");
    $(p).click();  √  原生JS的对象p已转为jQuery对象;
    
    ③jQuery对象转为原生JS对象。使用.get(index)或[index]:
    $("#p").get(0).onclick = function(){}  √
    $("#p")[0].onclick = function(){}  √

四、作者编

从上边,大家可以看出来了,jQuery真心很简洁而且好用!!但是,不可否认,原生JS真心灰常的强大,毕竟原生就是原生,有着无法取代的地位!只是代码的复杂性确实让我们又爱又恨!

而且,jQuery也是他的一个框架,虽然现在jQuery的地位已经和原生差不多相等了。但是小编提醒大家,一定要学号原生哟!

而且,小编听某位自称浩哥的帅锅说过,程序猿是一种非常懒得生物,所以大神们研究了这么多的框架,重要的是,有了这简单的jQuery,为何不用!

JQuery&原生js ——实现剪刀石头布小游戏的更多相关文章

  1. 一个简单用原生js实现的小游戏----FlappyBird

    这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...

  2. 原生js做h5小游戏之打砖块

    前言 首先,先说明一下做这个系列的目的:其实主要源于博主希望熟练使用 canvas 的相关 api ,同时对小游戏的实现逻辑比较感兴趣,所以希望通过这一系列的小游戏来提升自身编程能力:关于 es6 语 ...

  3. 原生js完成拼图小游戏

    废话不说,看代码,图片可以自己找,我这直接引用了百度的了 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml ...

  4. 原生js完成打地鼠小游戏

    :这是首页,有简单模式和地狱模式两种模式进行选择 这是选择完模式之后的游戏界面:30秒一局游戏倒计时,每打中一只老鼠加一分,没砸中减一分,没砸不加不减 首先准备几张图片 html代码: <!-- ...

  5. 一款简洁而强大的前端框架JQUery—动画效果及剪刀石头布小游戏

    jQuery是什么? jQuery是一个快速.简洁的JavaScript框架,它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画 ...

  6. 用js实现2048小游戏

    用js实现2048小游戏 笔记仓库:https://github.com/nnngu/LearningNotes 1.游戏简介 2048是一款休闲益智类的数字叠加小游戏.(文末给出源代码和演示地址) ...

  7. 【转】利用 three.js 开发微信小游戏的尝试

    前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...

  8. 使用JS实现2048小游戏

    JS实现2048小游戏源码 效果图: 代码如下,复制即可使用: (适用浏览器:360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗. 不支持Safari.IE8及以下浏览器.) &l ...

  9. js实现一个小游戏(飞翔的jj)

    js实现一个小游戏(飞翔的jj) 源代码+素材图片在我的仓库 <!DOCTYPE html> <html lang="en"> <head> & ...

随机推荐

  1. 标准的Java编码规范手册

    编码规范体现出一个开发者的基本素质,良好的编码规范可以提高团队编码的效率,避免很多不必要的问题.今天分享一个标准的Java编码规范给大家,希望对于大家今后的开发工作带来帮助. 编码规范的意义      ...

  2. hdu 6068--Classic Quotation(kmp+DP)

    题目链接 Problem Description When online chatting, we can save what somebody said to form his ''Classic ...

  3. Kosaraju算法详解

    Kosaraju算法是干什么的? Kosaraju算法可以计算出一个有向图的强连通分量 什么是强连通分量? 在一个有向图中如果两个结点(结点v与结点w)在同一个环中(等价于v可通过有向路径到达w,w也 ...

  4. 1092: 最大价值(dollars) 算法 动态规划

    题目地址:http://www.hustoj.com/oj/problem.php?id=1092 题目描述 Dave以某种方法获取了未来几天美元对德国马克的兑换率.现在Dave只有100美元,请编程 ...

  5. CSS display和visibility的用法和区别

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt408 大多数人很容易将CSS属性display和visibility混淆,它 ...

  6. IntelliJ IDEA使用(一)基本设置与类、方法模板设置

    其实之前一直开发都是在使用的是Eclipse,但是最近在做Maven项目的时候要用IntelliJ IDEA,据说这个idea功能非常的强大,最近在使用的时候发现如果适应的真的是非常的强大.感觉是比E ...

  7. 英语app分析

    Andorid 版本 第一部分 调研, 评测 搜索了一下必应跑出来的是微软必应,在印象中微软的产品都是很可靠地.安装之后对它的 排版字体图片等不是很喜欢,感觉有道词典会更亲切一点. 必应       ...

  8. 团队作业4——第一次项目冲刺(Alpha版本)2st day

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 界面 1.四个用户登录界面已经完成. 2.界面内的功能完成了一小部分. 登陆部分 1.QQ授权已经申请,还未通过. 2.通过好 ...

  9. Git 指南 -- 什么应该被纳入管理?

    Git 指南 -- 什么应该被纳入管理? 如果还不了解Git是什么,可以先阅读这篇博文:http://www.cnblogs.com/schaepher/p/5561193.html 是作品,而不是产 ...

  10. 201521123072《Java程序设计》第6周学习总结

    201521123072<Java程序设计>第6周学习总结 标签(空格分隔): java 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画 ...