JS實現(xiàn)網(wǎng)頁煙花動畫效果
更新時間:2020年03月10日 12:31:48 作者:LL-Echo
這篇文章主要為大家詳細介紹了JS實現(xiàn)網(wǎng)頁煙花動畫效果,點擊鼠標煙花向四周擴散,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
原生js實現(xiàn)放煙花效果,點擊鼠標,然后向四周擴散,最后自由落體效果!最簡單的方法實現(xiàn)!
效果圖:

CSS代碼:
*{
padding: 0px;
margin: 0px;
background: #000;
}
.firworks{
width: 6px;
height: 6px;
position: absolute;
}
js代碼:
<script type="text/javascript">
//封裝一個顏色隨機的效果
function randomColor(){
var color = "rgb("
var r = parseInt(Math.random()*256);
var g = parseInt(Math.random()*256);
var b = parseInt(Math.random()*256);
color = color+r+","+g+","+b+")";
return color;
}
//創(chuàng)建一個制造煙花的構(gòu)造函數(shù),第一個參數(shù)為元素,第二參數(shù)為初始x軸位置,第三參數(shù)為y軸位置。
function Fireworks(Div,x,y){
Div.style.backgroundColor=randomColor(); //給煙花添加背景色
Div.className="firworks"; //添加一個class
document.body.appendChild(Div);
Div.style.left=x+"px"; //把鼠標點擊坐標給div
Div.style.top=y+"px";
var speedX = (parseInt(Math.random()*2) == 0 ? 1 : -1)*parseInt(Math.random()*16 + 1); //三目運算符隨機移動方向,概率50%,為1時往正方向移動,負1時往反方向移動第二個隨機數(shù)隨機速度快慢
var speedY = (parseInt(Math.random()*2) == 0 ? 1 : -1)*parseInt(Math.random()*20 + 1);
this.move=function(){
var i = 3;
var time1=setInterval(function(){
i++;
Div.style.left=Div.offsetLeft+speedX+"px";
Div.style.top=Div.offsetTop+speedY+i+"px"; //當i+speedY>0時,煙花朝下運動。
if(Div.offsetLeft+Div.offsetWidth>window.innerWidth|| Div.offsetLeft<2 || Div.offsetTop+Div.offsetHeight>window.innerHeight || Div.offsetTop<2 ){
Div.remove(); //移動出可視區(qū)域記得刪除div和清除定時器
clearInterval(time1);
}
},30);
}
}
document.οnclick=function (e){
var evt=e||window.event; //兼容性處理
for(var i=0;i<80;i++){ //隨機煙花的數(shù)量
var div=document.createElement("div");
var b=new Fireworks(div,evt.pageX,evt.pageY);
b.move();
}
}
</script>
更多JavaScript精彩特效分享給大家:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實現(xiàn)像雪花一樣的Hexaflake分形
這篇文章主要介紹了JavaScript實現(xiàn)像雪花一樣的Hexaflake分形,文中示例代碼非常詳細,幫助大家更好的理解和學(xué)習,感興趣的朋友可以了解下2020-07-07
在table中插入多行的js代碼(與insertAdjacentHTML相似的功能)
在table中插入多行,能使用與insertAdjacentHTML相似的功能2010-06-06
js中async函數(shù)結(jié)合promise的小案例淺析
這篇文章主要介紹了js中async函數(shù)結(jié)合promise的小案例淺析,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04
基于bootstrap插件實現(xiàn)autocomplete自動完成表單
這篇文章主要介紹了基于bootstrap插件實現(xiàn)autocomplete自動完成表單的相關(guān)資料,感興趣的朋友可以參考一下2016-05-05

