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 相关文章推荐
优化网页之快速的呈现我们的网页
Jun 29 Javascript
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
jQuery中get方法用法分析
Dec 07 Javascript
Javascript操作dom对象之select全面解析
Apr 24 Javascript
基于react框架使用的一些细节要点的思考
May 31 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 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 数组排序方法总结 推荐收藏
2010/06/30 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
仿微博字符限制效果实现代码
2012/04/20 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
汉语专业应届生求职信
2013/10/01 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
会计学自荐信
2014/06/03 职场文书
三严三实对照检查材料
2014/09/22 职场文书
培训督导岗位职责
2015/04/10 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
python manim实现排序算法动画示例
2022/08/14 Python