javascript+css3開發(fā)打氣球小游戲完整代碼

效果知識點:
css3畫氣球, 自定義屬性運用,隨機陣列, DOM元素操作,高級回調(diào)函數(shù)與參數(shù)復(fù)傳,動態(tài)布局,鼠標(biāo)事件,定時器運用,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旋轉(zhuǎn) 順時針旋轉(zhuǎn)45度
/
background:#faf9f9;
x軸的位置 y軸的位置 影子擴散程度 模糊度 顏色
/
}
.balloon:after{
偽元素的內(nèi)容
/
display:block;
position:absolute;
因為氣球是旋轉(zhuǎn)的 現(xiàn)在的正下方其實是右下角*/
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的數(shù)量
//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循環(huán) 循環(huán)加工廠
var randomL=Math.random()*wW; // 隨機left范圍
randomL=Math.min(wW-160,randomL); //規(guī)范left位置
var balloon = document.createElement('div'); //用js生成標(biāo)簽
balloon.className='balloon'; //給創(chuàng)建的div元素設(shè)置類名
balloon.style.left=randomL+'px'; //改變元素的樣式中的left的值
balloon.style.top=wH+'px';
balloon.speed=Math.random()*5+1; //自定義屬性 創(chuàng)建元素的時候添加
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(){ //誰 觸發(fā)了什么 誰做了什么事情
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>
總結(jié)
以上所述是小編給大家介紹的javascript+css3開發(fā)打氣球小游戲完整代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JS實現(xiàn)的駝峰式和連字符式轉(zhuǎn)換功能分析
這篇文章主要介紹了JS實現(xiàn)的駝峰式和連字符式轉(zhuǎn)換功能,結(jié)合實例形式分析了JS實現(xiàn)字符串的駝峰式與連接符式轉(zhuǎn)換的實現(xiàn)技巧,涉及js字符串遍歷、轉(zhuǎn)換及正則表達式相關(guān)操作方法,需要的朋友可以參考下2016-12-12
Javascript動態(tài)創(chuàng)建表格及刪除行列的方法
這篇文章主要介紹了Javascript動態(tài)創(chuàng)建表格及刪除行列的方法,涉及javascript動態(tài)操作表格的相關(guān)技巧,需要的朋友可以參考下2015-05-05
如何使用json在前后臺進行數(shù)據(jù)傳輸實例介紹
需要把這些輸入寫入數(shù)據(jù)庫,這里就用到j(luò)son傳入,先看一下后臺如何生成要傳輸?shù)臄?shù)據(jù),感興趣的朋友可以參考下,希望可以幫助到你2013-04-04
javascript 模擬坦克大戰(zhàn)游戲(html5版)附源碼下載
這篇文章主要介紹了javascript 模擬坦克大戰(zhàn)游戲關(guān)鍵點和遇到的問題及實現(xiàn)代碼,需要的朋友可以參考下2014-04-04
利用Plupload.js解決大文件上傳問題, 帶進度條和背景遮罩層
本篇文章主要介紹了c#+Plupload.js解決大容量文件上傳問題, 帶進度條和背景遮罩層,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
javascript獲取下拉列表框當(dāng)中的文本值示例代碼
需要將用戶點擊下拉列表當(dāng)中某個選項后,將其所選的內(nèi)容保存起來,下面與大家分享下如何使用js獲取下拉列表框文本值,由此需求的朋友可以參考下2013-07-07

