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 Event学习第五章 高级事件注册模型
Feb 07 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
JavaScript中的acos()方法使用详解
Jun 14 Javascript
angularJS 如何读写缓冲的方法(推荐)
Aug 06 Javascript
canvas绘制的直线动画
Jan 23 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 Javascript
webpack的pitching loader详解
Sep 23 Javascript
vue 全局环境切换问题
Oct 27 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 Javascript
Vue父组件监听子组件生命周期
Sep 03 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 分页函数multi() discuz
2009/06/21 PHP
php实现数字补零的方法总结
2018/09/12 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
python3将变量输入的简单实例
2020/08/19 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
python 元组和列表的区别
2020/12/30 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
工程造价自荐信
2013/10/09 职场文书
简单英文演讲稿
2014/01/01 职场文书
高中教师评语大全
2014/04/25 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
市场部岗位职责
2015/02/12 职场文书
初中毕业生自我评价
2015/03/02 职场文书
会计出纳岗位职责
2015/03/31 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python