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 相关文章推荐
使用jQueryMobile实现滑动翻页效果的方法
Feb 04 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
es6的数字处理的方法(5个)
Mar 16 Javascript
js实现上传并压缩图片效果
Jan 10 Javascript
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
用node.js写一个jenkins发版脚本
May 21 Javascript
vue+element模态框中新增模态框和删除功能
Jun 11 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
vue实现移动端拖动排序
Aug 21 Javascript
原生js实现移动小球(碰撞检测)
Dec 17 Javascript
WebWorker 封装 JavaScript 沙箱详情
Nov 02 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
Laravel 5 学习笔记
2015/03/06 PHP
php session的应用详细介绍
2017/03/22 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
python WindowsError的错误代码详解
2017/07/23 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python 寻找局部最高点的实现
2019/12/05 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
ORACLE第二个十问
2013/12/14 面试题
工业自动化专业毕业生推荐信
2013/11/18 职场文书
小班上学期评语
2014/05/05 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
银行求职信怎么写
2019/06/20 职场文书