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 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
jquery键盘事件介绍
Jan 31 Javascript
javascript中字符串拼接详解
Sep 26 Javascript
jQuery实现标题有打字效果的焦点图代码
Nov 16 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
Feb 27 Javascript
删除table表格行的实例讲解
Sep 21 Javascript
微信小程序实现登录遮罩效果
Nov 01 Javascript
Vue动画事件详解及过渡动画实例
Feb 09 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
详解vue路由
Aug 05 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 XML数据解析代码
2010/05/26 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
php实现微信发红包功能
2018/07/13 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
js运动应用实例解析
2015/12/28 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
numpy中矩阵合并的实例
2018/06/15 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
计算机专业毕业生自荐书
2014/06/02 职场文书
团拜会策划方案
2014/06/07 职场文书
父亲节活动策划方案
2014/08/24 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
Javascript webpack动态import
2022/04/19 Javascript
vue里使用create, mounted调用方法
2022/04/26 Vue.js