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 相关文章推荐
jquery改变tr背景色的示例代码
Dec 28 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
jquery和css3实现的炫酷时尚的菜单导航
Sep 01 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
深入理解ES6的迭代器与生成器
Aug 19 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
Dec 06 jQuery
vue二级路由设置方法
Feb 09 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
详解VueJs中的V-bind指令
May 03 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 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
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
python 字典访问的三种方法小结
2019/12/05 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
Python实现随机爬山算法
2021/01/29 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
秋季运动会表扬稿
2014/01/16 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
怎样写辞职信
2015/02/27 职场文书
律师函格式范本
2015/05/27 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript