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 相关文章推荐
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
使用AOP改善javascript代码
May 01 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
JS模拟的Map类实现方法
Jun 17 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
js Array.slice的8种不同用法示例
Jul 10 Javascript
vue-property-decorator用法详解
Dec 12 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 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中设置时区,记录日志文件的实现代码
2013/01/07 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
Python字典的核心底层原理讲解
2019/01/24 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python做接口测试的必要性
2019/11/20 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
基于python实现删除指定文件类型
2020/07/21 Python
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
应聘医学检验人员自荐信
2013/09/27 职场文书
师范学院教师自荐书
2014/01/31 职场文书
就业表自我评价分享
2014/02/06 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
工作岗位说明书模板
2014/05/09 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
事业单位个人总结
2015/02/12 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
房地产销售员岗位职责
2015/04/11 职场文书