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 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
JavaScript为对象原型prototype添加属性的两种方式
Aug 01 Javascript
Javascript获取HTML静态页面参数传递值示例
Aug 18 Javascript
html dom节点操作(获取/修改/添加或删除)
Jan 23 Javascript
点击显示指定元素隐藏其他同辈元素的方法
Feb 19 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
vue实现添加标签demo示例代码
Jan 21 Javascript
漂亮实用的页面loading(加载)封装代码
Feb 03 Javascript
vue服务端渲染添加缓存的方法
Sep 18 Javascript
ES6模板字符串和标签模板的应用实例分析
Jun 25 Javascript
详解JavaScript 异步编程
Jul 13 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学习 函数 课件
2008/06/15 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
php数组去除空值函数分享
2015/02/02 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
python enumerate函数的使用方法总结
2017/11/15 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
大专自我鉴定范文
2013/10/01 职场文书
大学生军训感想
2014/02/16 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
银行员工考核评语
2014/12/31 职场文书
纪律委员竞选稿
2015/11/19 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python