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 AJAX之惰性载入函数
Aug 27 Javascript
通过伪协议解决父页面与iframe页面通信的问题
Apr 05 Javascript
javascript Slip.js实现整屏滑动的手机网页
Nov 25 Javascript
js制作网站首页图片轮播特效代码
Aug 30 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
Dec 13 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
js的对象与函数详解
Jan 21 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
微信小程序实现搜索功能
Mar 10 Javascript
vue 数据操作相关总结
Dec 17 Vue.js
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表单转换textarea换行符的方法
2010/09/10 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
JS实现图片切换效果
2018/11/17 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Python读写Excel文件的实例
2013/11/01 Python
python实现单向链表详解
2018/02/08 Python
Python中单例模式总结
2018/02/20 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
学校师德师风自我剖析材料
2014/09/29 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
投标单位介绍信
2015/05/05 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书