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 相关文章推荐
jquery获得页面元素的坐标值实现思路及代码
Apr 15 Javascript
实测jquery data()如何存值
Aug 18 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
Sep 15 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
JavaScript之filter_动力节点Java学院整理
Jun 28 Javascript
jQuery常见面试题之DOM操作详析
Jul 05 jQuery
angular6 填坑之sdk的方法
Dec 27 Javascript
微信小程序实现的自定义分享功能示例
Feb 12 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 Javascript
node.js使用express-fileupload中间件实现文件上传
Jul 16 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
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
php制作文本式留言板
2015/03/18 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
Python continue语句实例用法
2020/02/06 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
大学生军训自我鉴定
2014/02/12 职场文书
年度考核自我鉴定
2014/03/19 职场文书
环保志愿者活动方案
2014/08/14 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
环卫工作汇报材料
2014/10/28 职场文书
2014年预算员工作总结
2014/12/05 职场文书
综合管理员岗位职责
2015/02/11 职场文书
新学期主题班会
2015/08/17 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers