当前位置: 首页 > Web前端 > HTML5

HTML5Canvas背景动画

时间:2023-04-05 19:00:57 HTML5

是通过浮动Div层实现的。在日常的学习中,接触到了一些HTML5Canvas的动画。在开发tiomg.org台美在线工具网站的时候,想把这些震撼或者小清新的动画融入到工具网站中,可以让原本单调的网页看起来丰富,更有设计感。网站发布后,一些程序开发伙伴和站长询问如何实现。也很乐意把将要用到的开源组件和实现分享给大家。有的同学还是不明白,我答应过会儿写博客。在过去的几个月里,我一直在关注网站的一些新功能,并帮助解决一些定制问题。今天才开始写这篇博客,分享一下我的实现思路。在这篇文章中,我将以本站标志性的Particleground粒子动画(github)为例,讲解如何实现。先贴出Particleground的官方demo(如下图),让大家对粒子动画有一个直观的认识。这里也非常感谢HoriaDragomir贡献了这个非常震撼的HTML5Canvas动画。在集成HTML5Canvas动画的过程中,我不希望HTML5Canvas动画占据网页的布局,而是作为背景动画。可以看到,官方demo已经给出了这样的例子,tiomg.org的登录页面也是这样实现的。画布作为动画绘制的背景层,内容文本层悬浮在画布上方。简化后的代码是这样的:

Text/contentfloatingonthecanvas
官方演示html截图:完整背景动画去这里Canvas的问题已经成功解决。但是当我开发tiomg.org网站时,我有一个更有趣的想法。希望Canvas背景动画不是占据整个页面的背景,而是页面的一块区域。高度由子元素决定,完全兼容bootstrap响应式设计。就像我们常用的CSS背景图片:background-image:url(bgimage.gif);,一般我们在父元素上加上background-image,子元素(透明)展开并决定父元素的大小。HTML5标签用作绘制图像(通常是JavaScript)的容器。它不能像图片一样用作其他HTML标签的背景。只能考虑layerfloating才能实现。如何“悬浮”,是不是要一层叠加在另一层上?我们可以使用相对定位和绝对定位来实现。例如:你在父元素上设置了position:relative;设置位置:绝对;在子元素上,使子元素可以“漂浮”在父元素之上。最重要的是,我还设置了一个位置:relative;子元素使其漂浮在画布上,展开并确定父元素的大小。简化的HTML代码贴在这里:="position:relative;">text/contentfloatingonthecanvas
由于js代码无法运行,我录制了一个本地网页的gif动图,而不是实际效果。如果想在本地看到实际效果,可以点击实际效果展示和源码下载。