iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >基于JavaScript实现动态雨滴特效
  • 719
分享到

基于JavaScript实现动态雨滴特效

2024-04-02 19:04:59 719人浏览 泡泡鱼
摘要

目录演示技术栈源码设置画布js部分演示 技术栈 介绍一下画布吧: HTML5 标签用于绘制图像(通过脚本,通常是 javascript)。 不过, 元素本身并没有绘制能力(它仅仅是

演示

技术栈

介绍一下画布吧:

HTML5 标签用于绘制图像(通过脚本,通常是 javascript)。

不过, 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务。

getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性

它的方法挺多的大家可以去搜一下我就说几个常用的:

源码

设置画布

 <canvas id="canvas" style="position: absolute; height: 100%; width:100%;"></canvas>

js部分

跟随鼠标移动

window.onmousemove=function (e) 
 {
   mousePos[0]=e.clientX;
   mousePos[1]=e.clientY;
   maxspeedx=(e.clientX-canvasEl.clientWidth/2)/(canvasEl.clientWidth/2);
 }

创建雨线

function createLine(e)
  {
   var temp= 0.25*( 50+Math.random()*100);
    var myline={
      speed:5.5*(Math.random()*6+3),
      die:false,
      posx:e,
      posy:-200,
      h:temp,
      color:getRgb(Math.floor(temp*255/75),Math.floor(temp*255/75),Math.floor(temp*255/75))
    };
    linelist.push(myline);
  }

雨点的刷新

 function update() {
    if(dropList.length>0)
    {
       dropList.forEach(function (e) {
         e.vx=e.vx+(speedx)/2;
         e.posx=e.posx+e.vx;
         e.vy=e.vy+gravity;
         e.posy=e.posy+e.vy;
         if(e.posy>canvasEl.clientHeight)
         {
           e.die=true;
         }
       });
    }
    for(var i=dropList.length-1;i>=0;i--)
    {
      //delite die
      if(dropList[i].die){
        dropList.splice(i,1);
      }
    }
    
    speedx=speedx+(maxspeedx-speedx)/50;
  
    if(Math.random()>0)
    {
    createLine(Math.random()*2*canvasEl.width-(0.5*canvasEl.width));
    createLine(Math.random()*2*canvasEl.width-(0.5*canvasEl.width));
    createLine(Math.random()*2*canvasEl.width-(0.5*canvasEl.width));
    }
    var mydeadline=canvasEl.clientHeight- Math.random()*canvasEl.clientHeight/5;
     linelist.forEach(function (e) {
       var dis=Math.sqrt( ((e.posx+speedx*e.h)-mousePos[0])*((e.posx+speedx*e.h)-mousePos[0])+(e.posy+e.h-mousePos[1])*(e.posy+e.h-mousePos[1]));
       if(dis<35)
       {
         madedrops(e.posx+speedx*e.h,e.posy+e.h);
         e.die=true;
       }
        
       if((e.posy+e.h)>mydeadline)
       {
         if(Math.random()>0.85)
         {
           madedrops(e.posx+speedx*e.h,e.posy+e.h);
           e.die=true;
         }
       }
       if(e.posy>=canvasEl.clientHeight)
       {
         e.die=true;
       }else{
         e.posy=e.posy+e.speed;
         e.posx=e.posx+(e.speed*speedx);
       }
     });
       for(var i=linelist.length-1;i>=0;i--)
    {
      if(linelist[i].die){
        linelist.splice(i,1);
      }
    }
     render();
     window.requestAnimationFrame(update);
  }

雨点的渲染

function  render() {
    ctx.fillStyle = backgroundColor;
    ctx.fillRect(0, 0, canvasEl.width, canvasEl.height);

     linelist.forEach(
      function (line) {
   
        ctx.strokeStyle =line.color;
        ctx.lineWidth=4.5;
        ctx.beginPath();
        ctx.moveTo(line.posx,line.posy);
        ctx.lineTo(line.posx+speedx*line.h,line.posy+line.h);
        ctx.stroke();
      });
       ctx.lineWidth=1;
          ctx.strokeStyle = "#fff";
          dropList.forEach(function (e) {
           ctx.beginPath();
           ctx.arc(e.posx,e.posy,e.radius,Math.random()*Math.PI*2,1*Math.PI);
           ctx.stroke();
       });
}

以上就是基于JavaScript实现动态雨滴特效的详细内容,更多关于JavaScript动态雨滴特效的资料请关注编程网其它相关文章!

--结束END--

本文标题: 基于JavaScript实现动态雨滴特效

本文链接: https://www.lsjlt.com/news/151174.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于JavaScript实现动态雨滴特效
    目录演示技术栈源码设置画布js部分演示 技术栈 介绍一下画布吧: HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript)。 不过, 元素本身并没有绘制能力(它仅仅是...
    99+
    2024-04-02
  • 基于JavaScript如何实现动态雨滴特效
    今天小编给大家分享一下基于JavaScript如何实现动态雨滴特效的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。演示技术栈介...
    99+
    2023-07-02
  • javascript canvas实现雨滴效果
    本文实例为大家分享了javascript canvas实现雨滴效果的具体代码,供大家参考,具体内容如下 先看效果 看起来很炫酷,其实就是实现了雨滴的掉落还有最后的圆 还是看源码 ...
    99+
    2024-04-02
  • javascript中canvas如何实现雨滴效果
    这篇文章将为大家详细讲解有关javascript中canvas如何实现雨滴效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了javascript canvas实现雨滴效果的具体代码,供...
    99+
    2023-06-15
  • CSS怎么实现雨滴动画效果
    这篇文章主要介绍CSS怎么实现雨滴动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!玻璃窗今天我们要实现的是雨滴效果,不过实现雨滴前,我们先把毛玻璃的效果弄出来,没有玻璃窗,雨都进屋了,还有啥好敲打的。<d...
    99+
    2023-06-08
  • HTML5如何实现晶莹剔透的雨滴特效
    这篇文章主要介绍HTML5如何实现晶莹剔透的雨滴特效,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:<html>  <head> ...
    99+
    2024-04-02
  • CSS3怎么绘制一个小雨滴动态效果
    本篇内容介绍了“CSS3怎么绘制一个小雨滴动态效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步通过...
    99+
    2024-04-02
  • 基于JavaScript实现新年贺卡特效
    目录动图演示主要代码css样式Javascirpt动图演示 一款超级炫酷的2022新年快乐html网页特效,霓虹的城市夜景和绚烂的烟花很是特别,该html页面还有交互效果,点击鼠标就...
    99+
    2024-04-02
  • 基于JS实现动态跟随特效的示例代码
    目录演示技术栈源码css部分js部分演示 技术栈 这次用到了关于css的一些功能,和jQuery。 CSS3中添加的新属性animation是用来为元素实现动画效果的,但是anim...
    99+
    2024-04-02
  • 基于JavaScript实现雪花许愿墙特效
    目录导语效果预览功能要点介绍代码部分雪花逻辑部分(index.js)逻辑文件 (script.js)样式部分(style.css)骨架部分(html)效果演示导语 歌谣 歌谣 新的一...
    99+
    2024-04-02
  • JS实现代码雨特效
    本文实例为大家分享了JS实现代码雨特效的具体代码,供大家参考,具体内容如下 html代码 <canvas id="code_rain_canvas" width="1440" ...
    99+
    2024-04-02
  • 基于JavaScript实现省市联动效果
    本文实例为大家分享了JavaScript实现省市联动效果的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang="...
    99+
    2024-04-02
  • 基于Python实现流星雨效果的绘制
    目录1 前言2 霍金说移民外太空3 浪漫的流星雨展示 4 Python代码 1 前言 我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星...
    99+
    2024-04-02
  • JavaScript实现代码雨效果
    本文实例为大家分享了JavaScript实现代码雨效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> ...
    99+
    2024-04-02
  • JavaScript实现字符雨效果
    本文实例为大家分享了JavaScript实现字符雨效果的具体代码,供大家参考,具体内容如下 <html>     <head>         <met...
    99+
    2024-04-02
  • 七个基于JavaScript实现的情人节表白特效
    目录七夕情人节送花动画告白特效玫瑰花盛开动画告白特效3d旋转相册点击爱心散开动画告白特效雷电打出告白文字特效粒子组合告白文字特效小熊拉手CSS3情人节动画表白特效七夕情人节送花动画告...
    99+
    2024-04-02
  • jquery插件实现代码雨特效
    本文实例为大家分享了jquery插件实现代码雨特效的具体代码,供大家参考,具体内容如下 代码雨特效 提供大概思路,虽然和目标的效果不一样,但是很容易举一反三改出对应效果的 效果如下 ...
    99+
    2024-04-02
  • 基于JS实现漫画中大雨滂沱的效果
    目录演示技术栈源码css部分大雨滂沱演示 技术栈 最近用canvas有点上瘾,接着上次的雨滴和流星雨的思路我们在改进一下 <canvas id='canvas' width=...
    99+
    2024-04-02
  • JavaScript canvas实现字符雨效果
    本文实例为大家分享了JavaScript canvas实现字符雨效果的具体代码,供大家参考,具体内容如下 字符雨效果 分析如何实现 字符雨从上往下逐渐消失: 这是canvas每次画...
    99+
    2024-04-02
  • JavaScript canvas实现代码雨效果
    本文实例为大家分享了canvas实现代码雨效果的具体代码,供大家参考,具体内容如下 先看效果图 这个效果图是不是像极了以前电影里面的黑客技术,看起来蛮难的,其实操作起来还是挺简单的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作