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 相关文章推荐
IE8 浏览器Cookie的处理
Jan 31 Javascript
正负小数点后两位浮点数实现原理及代码
Sep 06 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
Sep 06 Javascript
js移动焦点到最后位置的简单方法
Nov 25 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
js微信应用场景之微信音乐相册案例分享
Aug 11 Javascript
Vue仿支付宝支付功能
May 25 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
vue+koa2实现session、token登陆状态验证的示例
Aug 30 Javascript
JavaScript前端实现压缩图片功能
Mar 06 Javascript
Node 使用express-http-proxy 做api网关的实现
Oct 15 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中养成7个面向对象的好习惯
2010/07/17 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
比利时家具购买网站:Home24
2019/01/03 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
班班通项目实施方案
2014/02/25 职场文书
师德师风建设方案
2014/05/08 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
货款欠条范本
2015/07/03 职场文书
学校远程教育工作总结
2015/08/11 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python