jQuery如何实现会飞的小鸟
沉沙 2018-11-06 来源 : 阅读 1359 评论 0

摘要:本篇教程介绍了jQuery如何实现会飞的小鸟,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入。

本篇教程介绍了jQuery如何实现会飞的小鸟,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入。

<

1.获取图片和浏览器的宽和高

2.获取图片的方位

3.设置小鸟移动的大小,全局变量

4.获取键盘上的上下左右键

5.根据键盘上的上下左右控制小鸟的移动

6.超出浏览器从反方向出来

7.旋转



<div class="dbird"><img src="bird.gif" width="206" height="121" alt=""/></div>

.dbird{width:206px;height:121px;}

第一步获取该div的宽和高以及浏览器的宽和高

var dwidth = $(".dbird").width();
var dheight = $(".dbird").height();
var bwidth = $(window).width();
var bheight = $(window).height();

第二步获取方位  x、y,不设置位置的话,默认在浏览器的左上角的(0,0)位置,即图片的左上角的位置是浏览器的(0,0)

var off = $(".dbird").offset();

第三步设置小鸟移动到大小,我们设置一个全局变量,大小为20

var step = 20;

第四步响应键盘,键盘上的都是用数字表示的,如上下左右是37-40。把按得键赋给keycode,然后用来做第五步判断

$(document).keydown(function(e){
 var keycode = e.keyCode;
}

第五步根据按键的是上下左右给出移动,使用switch-case比较简单

switch(keycode){
    case 37:  //左
        off.left -= step;  //按一下往左动20
        break;
    case 38://上
        off.top -= step;  //按一下往上动20
        break;
    case 39:  //右
        off.left +=step;   //按一下往右动20
        break;
    case 40: //下
        off.top += step;  //按一下往下动20
        break;
}

此时应该是没有效果的,刷新小鸟的位置才可以,在switch后重新获取移动后的位置即可

$(".dbird").offset(off);

第六步超出浏览器从反方向飞回,解释一下,如一直往右飞,当小鸟的位置大于了浏览器的宽度,那么就看不见小鸟了,此时我们让小鸟在从浏览器的左边飞进来,因为我们没有设置小鸟的位置,那么应该是从图片的右边先进来,那么off.left就是-dwidth了,看图片分析:



其他三个同理

if(off.left <= -dwidth){  //37
 off.left = bwidth;
}
if(off.top<=-dheight){   //38
 off.top = bheight;
}
if(off.left>=bwidth){    //39
 off.left=-dwidth
}
if(off.top>=bheight){    //40
 off.top = -dheight;
}

第七步按方位进行旋转

默认是39(头朝右)可以做判断,如果是39,则不旋转,如果不是39就根据按键的数做相应的旋转,左就旋转180°,上或下就旋转60°(度数自己定),可以先写好按键数对应的效果,如37,我们给定37的类dir_37类的css样式是旋转180°,当按37时添加dir_37类即可,如果按的不是37而是40了,就移除dir_37类添加dir_40类。

首先先写好三个类

.dri_37{
    transform:rotateY(180deg);/*直接转身*/
}
.dri_38{
    transform:rotate(-60deg);/*倾斜*/
}
.dri_40{
    transform:rotate(60deg);
}

其次可以定义一个全局变量,赋值为默认值39

var rcode = 39;

最后根据按键和rcode比较,如果不等于,那么就添加对应的类,添加之前可以先移除上一次添加的类(如果没有添加过类就不会执行的)。否则继续执行。

if (keycode != rcode) {
    $(".dbird").removeClass().addClass("dri_"+keycode);
}    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端jQuery频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程