js实现可爱的气泡特效


Posted in Javascript onSeptember 05, 2020

本文实例为大家分享了js实现可爱的气泡特效的具体代码,供大家参考,具体内容如下

js实现可爱的气泡特效

代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <canvas id="myCanvas"></canvas>
  <script>
    var c = document.getElementById("myCanvas");
    c.width = 300;
    c.height = 500;
    var ctx = c.getContext('2d');

    var arr = []

    function sui() {
      var r = Math.floor(Math.random() * 6 + 5);
      var x = Math.floor(Math.random() * (c.width - 2 * r)) + r;
      var y = c.height - r;
      var opacity = Math.random();
      var red = Math.floor(Math.random() * 256);
      var green = Math.floor(Math.random() * 256);
      var blue = Math.floor(Math.random() * 256);
      var deg = 0;
      var scale = Math.floor(Math.random() * 6 + 10);
      arr.push({
        x,
        y,
        r,
        red,
        green,
        blue,
        opacity,
        deg,
        scale
      })
    }
    setInterval(sui, 40);
    // 再实现变大和绘制
    function dan() {
      ctx.clearRect(0, 0, c.width, c.height);
      arr.forEach((item, i) => {
        item.deg += 0.5;
        item.y -= item.deg;
        item.x += Math.sin(item.deg) * item.scale;
        if (item.y <= item.r) {
          arr.splice(i, 1);
        } else {
          ctx.beginPath();
          ctx.arc(item.x, item.y, item.r, 0, Math.PI * 2);
          ctx.fillStyle = `rgba(${item.red},${item.green},${item.blue},${item.opacity})`;
          ctx.fill();
        }
      })
    }
    setInterval(dan, 100);
  </script>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Eval 函数使用
Mar 23 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
May 07 Javascript
javascript列表框操作函数集合汇总
Nov 28 Javascript
javascript结合Canvas 实现简易的圆形时钟
Mar 11 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
Jul 19 Javascript
关于vue面试题汇总
Mar 20 Javascript
JavaScript格式化json和xml的方法示例
Jan 22 Javascript
vue 组件内获取actions的response方式
Nov 08 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
JS实现多功能计算器
Oct 28 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 #Javascript
javascript实现一款好看的秒表计时器
Sep 05 #Javascript
vue组件讲解(is属性的用法)模板标签替换操作
Sep 04 #Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
Sep 04 #Javascript
Vue中component标签解决项目组件化操作
Sep 04 #Javascript
JS数组转字符串实现方法解析
Sep 04 #Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 #Javascript
You might like
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php实现mysql封装类示例
2014/05/07 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
javascript中的this详解
2014/12/08 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
Python中splitlines()方法的使用简介
2015/05/20 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
用python批量移动文件
2021/01/14 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
员工拾金不昧表扬信
2014/01/09 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
工程质量承诺书范文
2014/03/27 职场文书
青春奉献演讲稿
2014/05/08 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
英语通知范文
2015/04/22 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis