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如何动态加载表格与动态添加表格行
Nov 27 Javascript
jQuery动态修改超链接地址的方法
Feb 13 Javascript
javascript制作2048游戏
Mar 30 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
Nov 02 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
vue实现百度搜索下拉提示功能实例
Jun 14 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
Sep 05 Javascript
防止Layui form表单重复提交的实现方法
Sep 10 Javascript
记一次用ts+vuecli4重构项目的实现
May 21 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 24 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
如何使用Strace调试工具
2013/06/03 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
js实现选项卡效果
2020/03/07 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
Python2.x与Python3.x的区别
2016/01/14 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
django foreignkey(外键)的实现
2019/07/29 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
社区义诊活动总结
2014/04/30 职场文书
关于安全演讲稿
2014/05/09 职场文书
工商管理自荐书
2014/07/06 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
大国崛起观后感
2015/06/02 职场文书
母亲节主题班会
2015/08/14 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
VUE递归树形实现多级列表
2022/07/15 Vue.js