javascript+css3开发打气球小游戏完整代码


Posted in Javascript onNovember 28, 2017

javascript+css3开发打气球小游戏完整代码

效果知识点:

css3画气球, 自定义属性运用,随机阵列, DOM元素操作,高级回调函数与参数复传,动态布局,鼠标事件,定时器运用,CSS3新增样式等。

css代码如下:

<style>
{margin:0;padding:0;}
body{background:#434343;overflow:hidden}
.balloon{
position:absolute;
left:0;
top:0;
margin:auto;
width:160px;
height:160px;
圆角: 左上 右上 右下 左下 
/
css3旋转 顺时针旋转45度 
/
background:#faf9f9;
x轴的位置 y轴的位置 影子扩散程度 模糊度 颜色 
/
}
.balloon:after{
伪元素的内容 
/
display:block;
position:absolute;

因为气球是旋转的 现在的正下方其实是右下角*/

right:0px;
width:0px;
height:0px;
border:8px solid #dbbdbd;
border-top-color:transparent;
border-bottom-color:transparent;
border-left-color:transparent;
transform:rotate(45deg);
border-radius:16px;
}
#wrap{
width:200px;
height:200px;
background:red;
}
</style>

javascript代码如下:

<script>
  var num = 10; // 声明遍历num 为div的数量
  //var oBody = document.querySelector('body'); //h5 api 获取元素的方法
  var oBody=document.documentElement || document.body; //body获取兼容性写法
  var wW=window.innerWidth; //获取浏览器窗口的宽度
  var wH=window.innerHeight; //获取浏览器窗口高度
  var timer=null;      //初始化定时器变量
  init(num);
  function init(num){
    for(var i=0;i<num;i++){ //for循环 循环加工厂
      var randomL=Math.random()*wW;    // 随机left范围
        randomL=Math.min(wW-160,randomL); //规范left位置
      var balloon = document.createElement('div'); //用js生成标签
      balloon.className='balloon'; //给创建的div元素设置类名
      balloon.style.left=randomL+'px'; //改变元素的样式中的left的值
      balloon.style.top=wH+'px';
      balloon.speed=Math.random()*5+1; //自定义属性 创建元素的时候添加
      oBody.appendChild(balloon); //body中添加 元素对象
    }
  }
  timer=setInterval(function(){
    var oBall=document.querySelectorAll('.balloon');//获取页面所有的气球
    for(var i=0,len=oBall.length;i<len;i++){
      oBall[i].style.top = oBall[i].offsetTop-oBall[i].speed+'px';
      oBall[i].onclick=function(){ //谁 触发了什么 谁做了什么事情
        crash(this,function(xxx){
          clearInterval(xxx.timer); //清除动画定时器
          xxx.parentNode.removeChild(xxx);
        });
        //this.parentNode.removeChild(this);  
        init(1);
      }
    }
  },30);
  function crash(ele,cb){  //被点击之后撒气效果
    ele.timeouter=setTimeout(function(){
        cb&&cb(ele);
    },500)
    ele.timer=setInterval(function(){
      ele.speed++; //加速度自增
      ele.style.top=ele.offsetTop-ele.speed+'px'; //加速逃离
      ele.style.width=ele.offsetWidth-10+'px'; //宽度减少
      ele.style.height=ele.offsetHeight-10+'px'; //高度减少
    },30)
  }
</script>

总结

以上所述是小编给大家介绍的javascript+css3开发打气球小游戏完整代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
Aug 04 Javascript
js函数排序的实例代码
Jul 01 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
Dec 28 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
Apr 18 Javascript
Bootstrap布局方式详解
May 27 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
layui use 定义js外部引用函数的方法
Sep 26 Javascript
vue 页面回退mounted函数不执行的解决方案
Jul 26 Javascript
在vue中使用image-webpack-loader实例
Nov 12 Javascript
9种改善AngularJS性能的方法
Nov 28 #Javascript
JS异步函数队列功能实例分析
Nov 28 #Javascript
浅谈vue,angular,react数据双向绑定原理分析
Nov 28 #Javascript
JS+HTML+CSS实现轮播效果
Nov 28 #Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 #Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 #Javascript
vue-music关于Player播放器组件详解
Nov 28 #Javascript
You might like
php checkbox 取值详细说明
2010/08/19 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
python复制文件代码实现
2013/12/23 Python
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
Python类装饰器实现方法详解
2018/12/21 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
迪奥官网:Dior.com
2018/12/04 全球购物
摄影实习自我鉴定
2013/09/20 职场文书
心得体会开头
2014/01/01 职场文书
个人委托书怎么写
2014/04/04 职场文书
保密工作目标责任书
2014/07/28 职场文书
小学生学习保证书
2015/02/26 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书