返回顶部
首页 > 资讯 > 前端开发 > html >html5如何实现圆圈扩散效果
  • 879
分享到

html5如何实现圆圈扩散效果

2024-04-02 19:04:59 879人浏览 安东尼
摘要

今天小编给大家分享一下HTML5如何实现圆圈扩散效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解

今天小编给大家分享一下HTML5如何实现圆圈扩散效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

  实现原理

  通过不断的改变圆的半径大小,不断重叠达到运动的效果,在运动的过程中,设置当前canvas的透明度 context.globalAlpha=0.95 ,使得canvas上的圆逐渐透明直至为0,从而实现这种扩散、渐变的效果。

  实现方法一

  1. 关键技术点

  context.globalAlpha = 0.95 ; //设置主canvas的绘制透明度。

  创建临时canvas来缓存主canas的历史图像,再叠加到主canvas上。

  2. 绘制过程

  首先,我们先来写一个绘制圆的方法:

  //画圆

  var drawCircle = function() {

  context.beginPath();

  context.arc(150, 100, radius, 0, Math.PI * 2);

  context.closePath();

  context.lineWidth = 2; //线条宽度

  context.strokeStyle = 'rgba(250,250,50,1)'; //颜色

  context.stroke();

  radius += 0.5; //每一帧半径增加0.5

  //半径radius大于30时,重置为0

  if (radius > 30) {

  radius = 0;

  }

  };

  然后,我们创建一个临时canvas用来缓存主canvas上的历史图像,设置主canvas的透明度 context.globalAlpha=0.95 (关键一步),在每次调用 drawCircle 方法绘制一个新圆之前都把主canvas上的图像,也就是之前的图像给绘制到临时的canvas中,等 drawCircle 方法绘制完新圆后,再把临时canvas的图像绘制回主canvas中。

  核心代码如下:

  //创建一个临时canvas来缓存主canvas的历史图像

  var backCanvas = document.createElement('canvas'),

  backCtx = backCanvas.getContext('2d');

  backCanvas.width = width;

  backCanvas.height = height;

  //设置主canvas的绘制透明度

  context.globalAlpha = 0.95;

  //显示即将绘制的图像,忽略临时canvas中已存在的图像

  backCtx.globalCompositeOperation = 'copy';

  var render = function() {

  //1.先将主canvas的图像缓存到临时canvas中

  backCtx.drawImage(canvas, 0, 0, width, height);

  //2.清除主canvas上的图像

  context.clearRect(0, 0, width, height);

  //3.在主canvas上画新圆

  drawCircle();

  //4.等新圆画完后,再把临时canvas的图像绘制回主canvas中

  context.drawImage(backCanvas, 0, 0, width, height);

  };

  实现方法二

  与上一种方法相比,这种方法更加简单,同样是用到了透明度逐渐减小直到为0的原理,不同的是这里并没有创建临时canvas,而是运用了 context.globalCompositeOperation 属性值 source-over 和 destination-in 来配合使用, 查看globalCompositeOperation属性介绍

  核心代码如下:

  var render = function() {

  //默认值为source-over

  var prev = context.globalCompositeOperation;

  //只显示canvas上原图像的重叠部分

  context.globalCompositeOperation = 'destination-in';

  //设置主canvas的绘制透明度

  context.globalAlpha = 0.95;

  //这一步目的是将canvas上的图像变的透明

  context.fillRect(0, 0, width, height);

  //在原图像上重叠新图像

  context.globalCompositeOperation = prev;

  //在主canvas上画新圆

  drawCircle();

  };

以上就是“html5如何实现圆圈扩散效果”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网html频道。

--结束END--

本文标题: html5如何实现圆圈扩散效果

本文链接: https://lsjlt.com/news/93904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • html5如何实现圆圈扩散效果
    今天小编给大家分享一下html5如何实现圆圈扩散效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • 如何利用CSS3动画实现圆圈由小变大向外扩散的效果
    这篇文章将为大家详细讲解有关如何利用CSS3动画实现圆圈由小变大向外扩散的效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css3中新增了一个animation的属性,该属性类似于创建一个animati...
    99+
    2023-06-08
  • 基于openlayers4如何实现点的扩散效果
    这篇文章主要为大家展示了“基于openlayers4如何实现点的扩散效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于openlayers4如何实现点的扩散...
    99+
    2024-04-02
  • html5如何实现图片转圈的动画效果
    这篇文章主要介绍了html5如何实现图片转圈的动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.先瞧瞧效果: 2.代码是这...
    99+
    2024-04-02
  • threeJs如何实现波纹扩散及光标浮动效果
    这篇“threeJs如何实现波纹扩散及光标浮动效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“threeJs如何实现波纹扩...
    99+
    2023-07-05
  • CSS怎么实现圆圈中带个十字效果
    本文小编为大家详细介绍“CSS怎么实现圆圈中带个十字效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS怎么实现圆圈中带个十字效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。圆圈中带个十字<div&...
    99+
    2023-07-04
  • Android实现多个连续带数字圆圈效果
    有项目需求需要绘制多个圆圈,并且使用连续的数字对其排列起来,也就是好多排的圆圈。首先看一下效果图:一排设置为8个,一共有53个的:一排设值为5个的,一共有153个:可以根据总的个数和每排个数自动调节圆圈的大小,并且根据传入的监听事件作出不同...
    99+
    2023-05-30
    android 数字圆圈 roi
  • CSS3如何实现圆角效果
    这篇文章主要介绍了CSS3如何实现圆角效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 CSS3 圆角使用 CSS3 borde...
    99+
    2024-04-02
  • css如何实现半圆效果
    css实现半圆效果的方法:1.通过“border-radius”属性设置边框的4个角实现半圆效果,需要在css中添加样式代码,比如语法样式为:“border-radius: 100px 100px 0 0;”设置边框左上角为100px、右上...
    99+
    2024-04-02
  • css如何实现圆角效果
    小编给大家分享一下css如何实现圆角效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!圆角效果  css3 新功能中最常用的一项是圆角效果,标准 HTML 方块对...
    99+
    2023-06-27
  • Android波纹扩散效果之仿支付宝咻一咻功能实现波纹扩散特效
    今年春节晚会没看尽兴,被支付宝集福给添了一段插曲,朋友们都在那数定时间段不停的咻一咻,哇,我咻到一个敬业福,不可能的,哈哈。那么咻一咻功能基于程序代码是怎么实现的呢?下面编程网...
    99+
    2022-06-06
    咻一咻 支付宝 Android
  • OpenCV-PS扩散毛玻璃效果的实现代码
    实现原理 PS的扩散效果可以产生类似毛玻璃质感的效果,使画面有些毛毛的感觉。其实现可通过操作像素三通道数值的方式实现,定义一个随机数器,将图像中任一点的数值赋值为,以该点为中心一定尺...
    99+
    2024-04-02
  • Android自定义View实现水波纹扩散效果
    目录1、创建RippleView.class, 继承与View1.1特殊属性解释 1.2新建attrs.xml文件(res/values)1.3初始化画笔2、开始绘制onD...
    99+
    2024-04-02
  • CSS3如何实现雷达圈动画效果
    这篇文章主要介绍了CSS3如何实现雷达圈动画效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS3如何实现雷达圈动画效果文章都会有所收获,下面我们一起来看看吧。效果:html代码:<body ...
    99+
    2023-07-04
  • 怎么用css实现水纹扩散的动画效果
    小编给大家分享一下怎么用css实现水纹扩散的动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   <divclas...
    99+
    2024-04-02
  • HTML5如何实现拖放效果
    这篇文章主要介绍HTML5如何实现拖放效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拖放拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分...
    99+
    2024-04-02
  • html5如何实现三维效果
    这篇文章主要介绍“html5如何实现三维效果”,在日常操作中,相信很多人在html5如何实现三维效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html5如何实现三维效果”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • JS如何实现画圆圈的小球
    小编给大家分享一下JS如何实现画圆圈的小球,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图 图(1)图(2)代码如...
    99+
    2024-04-02
  • html5如何做出图片转圈的动画效果
    小编给大家分享一下html5如何做出图片转圈的动画效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!    @mixin ani-btnRotate{    ...
    99+
    2024-04-02
  • CSS3如何实现内凹圆角效果
    这篇文章主要介绍了CSS3如何实现内凹圆角效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。这里介绍一个用径向渐变实现的内凹圆角,可以解决上...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作