码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • js制作的模拟超逼真下雨效果


    一层秋雨一层凉。

    小楼一夜听春雨。

    虞美人·听雨

    少年听雨歌楼上。红烛昏罗帐。壮年听雨客舟中。江阔云低、断雁叫西风。

    而今听雨僧庐下。鬓已星星也。悲欢离合总无情。一任阶前、点滴到天明。

    我是那迷恋微雨的过客。想着用js的代码在代码的世界里重现雨的时光。我搜集了很多的关于模拟下雨效果的代码。先上图:

    暗夜下的雨,


    js制作的超逼真下雨效果 (mubanmao.top)icon-default.png?t=M7J4http://mubanmao.top/content/preview/ead3b804-4ac0-42c1-9923-0064d90e2e45

    伴着电闪雷鸣的,雷雨

    js逼真模拟下大雨风雨交加效果带声音 (mubanmao.top)icon-default.png?t=M7J4http://mubanmao.top/content/preview?id=540adcaa-f801-4db8-bc39-fb698a801a73

    亦或者3D世界里面的逼真的雨滴效果:

    js逼真模拟农场森林下雨效果 (mubanmao.top)icon-default.png?t=M7J4http://mubanmao.top/content/preview?id=39e27150-54e8-41f0-9ada-4e2a3ea69a78

    还有更多的效果,请来我的世界查找:

     

    模拟下雨的

    1. // Rain.js
    2. (function(window, undefined) {
    3. if (typeof Raphael == 'undefined') throw "Rain needs Rapha毛l.js!";
    4. Rain = function(element, speed, angle) {
    5. if (!(this instanceof arguments.callee)) { return new arguments.callee(arguments); };
    6. var self = this;
    7. self.init = function(element, config) {
    8. var defaults = {speed: 500, angle: 20, intensity: 5, size: 10, color: '#fff'};
    9. if (typeof config == 'undefined') {
    10. config = defaults;
    11. } else {
    12. for (var property in defaults) {
    13. if (typeof config[property] == 'undefined') config[property] = defaults[property];
    14. };
    15. }
    16. self.config = config;
    17. var elt = document.getElementById(element);
    18. self.stage = {
    19. element: elt,
    20. width: function() { return elt.getBoundingClientRect().width; },
    21. height: function() { return elt.getBoundingClientRect().height; }
    22. };
    23. self.canvas = Raphael(self.stage.element);
    24. self.offset = (Math.tan(config.angle * Math.PI / 180) * self.stage.height());
    25. runEngine();
    26. return self;
    27. };
    28. function runEngine() {
    29. self.enginePid = setInterval(function() { createDrop(self.config); }, 100 / self.config.intensity);
    30. }
    31. function randomStartingPoint(angle) {
    32. return Math.floor(Math.random() * (self.stage.width() + self.offset));
    33. }
    34. function createPositionMatrix(angle, size) {
    35. return [randomStartingPoint(angle), 0, size * 0.1, size];
    36. }
    37. function createDrop(config) {
    38. var factor = Math.random(),
    39. positionMatrix = createPositionMatrix(config.angle, config.size),
    40. drop = self.canvas.ellipse.apply(self.canvas, positionMatrix),
    41. layer = config.speed * (1 + factor),
    42. cx = positionMatrix[0] - (Math.tan(config.angle * Math.PI / 180) * self.stage.height());
    43. drop
    44. .attr({stroke: config.color, opacity: 1 - factor, fill: config.color})
    45. .rotate(config.angle)
    46. .animate({cy: self.stage.height(), cx: cx}, layer, function() { drop.remove(); });
    47. return drop;
    48. }
    49. // "class" methods
    50. self.setIntensity = function(intensity) {
    51. clearInterval(self.enginePid);
    52. self.config.intensity = intensity;
    53. self.enginePid = setInterval(function() { createDrop(self.config); }, 100 / self.config.intensity);
    54. };
    55. window.onresize = function() { self.canvas.setSize(window.innerWidth, window.innerHeight); };
    56. return self.init.apply(self, arguments);
    57. };
    58. })(window);

  • 相关阅读:
    聊聊前端性能指标那些事儿
    《HelloGitHub》第 84 期
    nginx反向代理vue项目
    【洛谷】P1347 排序
    Docker部署Nacos2.0单机版+mysql8
    Spring整合Web环境
    M10C车载SD卡录像机产品外观结构图
    基于Java毕业设计二手手机回收平台系统源码+系统+mysql+lw文档+部署软件
    使用数据库实现增删改查
    NUMPY
  • 原文地址:https://blog.csdn.net/kongzhonghu/article/details/126616800
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号