firework—烟花源码(01)

简介: firework—烟花源码(01)
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>烟花绽放效果</title>
  <style>
    *{margin:0;padding: 0;}
    html{height: 100%;}
    body{height: 100%;background: #000;overflow: hidden;}
    .box{width: 5px;height: 30px;border-radius: 50%;background: red;position: absolute;}
    .yanhua{width: 8px;height: 8px;border-radius: 100%;background: rgb(253, 253, 253);position: absolute;}
  </style>
</head>
<body>
  <script type="text/javascript">
    document.addEventListener('click',function(e){
      //获取鼠标点击的位置
      var e = e || window.event;
      var x = e.clientX;
      var y = e.clientY;
      var h = document.body.clientHeight;
      //创建一个div  
      var oDiv = document.createElement("div"); 
      //属性设置
      oDiv.className = 'box';
      oDiv.style.left = x + 'px';
      oDiv.style.top = h + 'px';
      oDiv.style.background = color1();
       //将元素添加到body  
       document.body.appendChild(oDiv);  
       //将div移动到点击位置
    var time =  setInterval(function(){
        oDiv.style.top = oDiv.offsetTop - 10  + 'px';
        if(oDiv.offsetTop <= y){
          clearInterval(time);
          oDiv.style.top = y + 'px';
          document.body.removeChild(oDiv);  
          //炸开的烟花
          yanhua(x,y,h);
        }
      },1000/60);
    })
      //小烟花函数
      function yanhua(x,y,h){
        var ind = Math.round( Math.random()*50)+10;
        var fires = [];
        for(var i = 0 ; i < ind; i++){
          fires[i] = document.createElement("div"); 
          fires[i].className = 'yanhua';
          fires[i].style.left = x + 'px';
          fires[i].style.top = y + 'px';
          fires[i].style.background = color1();
          fires[i].weizhiX = Math.round( Math.random()*20 - 10);
          fires[i].weizhiY = Math.round( Math.random()*20 - 10);
          document.body.appendChild(fires[i]);
        } 
        //炸开
        setInterval(function(){
          for(var j = 0;j<ind;j++){
            fires[j].style.left = fires[j].offsetLeft + fires[j].weizhiX + 'px';
            fires[j].style.top = fires[j].offsetTop + fires[j].weizhiY + 'px';
            fires[j].weizhiY +=0.5;
            if(fires[j].offsetTop > h || fires[j].offsetLeft < 0 || fires[j].offsetLeft > document.body.clientWidth){
              document.body.removeChild(fires[j]); 
              // clearInterval(timet);
            }
          }
          },1000/60);  
      }
      //随机颜色
      function color1(){
        var r = Math.round( Math.random()*255);
        var g = Math.round( Math.random()*255);
        var b = Math.round( Math.random()*255);
        return 'rgb('+ r +','+ g +','+ b +')';
      }
      function color2(){
        return '#' + (~~(Math.random()*(1<<24))).toString(16);
      }
  </script>
</body>
</html>

a25a476f9774f15db32c4637be9d12ed.gif

相关文章
|
7月前
|
前端开发 移动开发 JavaScript
跨年动态炫酷烟花网页代码
利用Html5的Canvas技术,模拟出逼真的烟花效果,让用户在网页上欣赏到绚丽多彩的烟花盛宴。同时,通过交互式设计,让用户能够与烟花互动,增加趣味性。
86 0
跨年动态炫酷烟花网页代码
|
7月前
|
前端开发
【HTML】过年不能放烟花,那就放电子烟花
闲谈 大家回家过年可能都多多少少放过些🧨,但是有些在城市上过年的小伙伴可能就没有机会放鞭炮了。不过没关系,我们懂技术,我们用技术自娱自乐,放电子烟花,总不可能被警长叔叔敲门问候吧。
72 0
|
7月前
流星雨代码
流星雨代码
画烟花
进行相关代码编写,完成画烟花这个项目。
300 2
|
Python
【兔年烟花】旖旎风景——浪漫烟花(Python实现)
【兔年烟花】旖旎风景——浪漫烟花(Python实现)
146 0
|
Java
【Java实现小游戏】飞翔的小鸟(源码)
【Java实现小游戏】飞翔的小鸟(源码)
216 0
|
前端开发 JavaScript
2023年新年烟花代码(背景音乐完整版)
2023年新年烟花代码(背景音乐完整版)
231 0
|
前端开发 JavaScript
2023跨年代码(烟花+背景音乐)
2023跨年代码(烟花+背景音乐)
351 0
|
容器
Egret学习笔记 (Egret打飞机-9.子弹对敌机和主角的碰撞)
Egret学习笔记 (Egret打飞机-9.子弹对敌机和主角的碰撞)
108 0
|
容器
Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)
Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)
107 0