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下通过的XMLHttpRequest发送请求的代码
Jun 28 Javascript
js前台分页显示后端JAVA数据响应
Mar 18 Javascript
学习JavaScript设计模式(继承)
Nov 26 Javascript
微信开发 微信授权详解
Oct 21 Javascript
原生JavaScript实现Tooltip浮动提示框特效
Mar 07 Javascript
react-router实现跳转传值的方法示例
May 27 Javascript
js单页hash路由原理与应用实战详解
Aug 14 Javascript
Angularjs添加排序查询功能的实例代码
Oct 24 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
vue的keep-alive中使用EventBus的方法
Apr 23 Javascript
微信小程序wxs实现吸顶效果
Jan 08 Javascript
vue路由分文件拆分管理详解
Aug 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
jQuery代码优化 事件委托篇
2011/11/01 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
深入理解python中sort()与sorted()的区别
2018/08/29 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
Python中new方法的详解
2019/01/15 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
python银行系统实现源码
2019/10/25 Python
tensorflow 环境变量设置方式
2020/02/06 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
优秀共产党员先进事迹
2014/01/27 职场文书
四风存在的原因分析
2014/02/11 职场文书
教师职称自我鉴定
2014/02/12 职场文书
全运会口号
2014/06/20 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
深入理解python多线程编程
2021/04/18 Python
python状态机transitions库详解
2021/06/02 Python
MySQL系列之十一 日志记录
2021/07/02 MySQL
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers