搜索
您的当前位置:首页正文

在javascript+css3中如何实现打气球小游戏

2020-11-27 来源:欧得旅游网
这是一个简单但是印象深刻的小游戏,打气球小游戏的实现代码,主要基于js和css3,基于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 为p的数量
 //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('p'); //用js生成标签
 balloon.className='balloon'; //给创建的p元素设置类名
 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>

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在zTree中如何实现交互选项卡

详细讲解EasyUI中abs的使用

在EasyUI中如何使用accordion

Top