博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Div层悬浮实现HTML5 Canvas背景动画
阅读量:6591 次
发布时间:2019-06-24

本文共 1188 字,大约阅读时间需要 3 分钟。

在日常的学习中我接触到一些HTML5 Canvas动画,在开发 太美在线工具网站 的时候,想将这些震撼或小清新的动画融合到工具网站中,这样可以使原本单调的网页看起来丰富和更有设计感。

网站发布后,有程序开发的小伙伴和站长询问怎么实现的,我也乐于分享将使用的开源组件和实现告诉大家。有些同学还是不太明白,我答应后面写一篇博客来的。前几个月一直focus在网站的一些新功能上和帮忙解决一些定制问题,今天才开始动手写这篇博客来分享我的实现思路。

在本文中我将以本网站标志性的 作为实例进行讲解,如何进行实现。先贴出 (如下图),让大家对粒子动画有个直观的了解。这里也非常感谢Horia Dragomir贡献了这个非常震撼的HTML5 Canvas动画。

particleground-demo.png

在融合HTML5 Canvas动画的过程中,我并不想让HTML5 Canvas动画占用网页的版面,而是作为背景动画。正如你所看到的,官方的demo已经给出了这样的例子,tiomg.org的登录页面也是这么去实现。canvas作为背景层进行动画绘制,内容文字层悬浮在canvas上面。简化的代码是这样:

浮动在canvas上的文字/内容

官方demo html截图:

particleground-demo-html.png

到这里Canvas全背景动画问题已经顺利的解决了。但是在开发 tiomg.org 网站的时候,我有了一个更有趣的想法,我希望Canvas背景动画不是占满整个页面的背景,而是页面的一块区域,高度是由子元素来决定,并且完全兼容bootstrap响应式设计。就像是我们常用的CSS背景图片:background-image: url(bgimage.gif);,一般我们给父元素添加background-image,子元素(透明)撑开并决定父元素的大小。

HTML5 <canvas> 标签用于作为绘制图像的容器(通常是 JavaScript),并不能像图片那样作为其它HTML标签的背景,只能考虑层浮动来实现。如何“悬浮”,是想让一个层叠加在另一个层上?我们可以利用相对定位和绝对定位来实现。例如: 你在父元素上设置position:relative; 在子元素上设置position:absolute;,这样子元素就可以”悬浮”在父元素上面了。最重要的是,我还设置了一个position:relative;的子元素使其浮动在canvas上,撑开并决定父元素的大小。

这里贴出HTML简化代码:

浮动在canvas上的文字/内容

因为不能运行js代码,我录制了本地网页的gif动图代替实际效果。如果想自己本地看实际效果,你可以点击 。

图片描述

转载地址:http://hekio.baihongyu.com/

你可能感兴趣的文章
JScript内置对象Array中元素的删除问题
查看>>
Service 广播 到Fragment
查看>>
Eclipse中建立自己的类库,给不同的工程使用
查看>>
记 dotamax 面试第一题
查看>>
ubuntu 64位android项目报错的解决方案,打开64位 Ubuntu 的32位支持功能
查看>>
KBMMW 4.92.00 发布
查看>>
丹青引赠曹霸将军-杜甫
查看>>
一个执行计划异常变更的案例 - 外传之AWR
查看>>
libreoffice安装
查看>>
FFprobe使用指南
查看>>
HTML5 game engines
查看>>
我们每天都在忙些什么
查看>>
Filebeat+Logstash+ElasticSearch+Kibana搭建Apache访问日志解析平台
查看>>
【11g新特性】DDL_LOCK_TIMEOUT的作用
查看>>
Massive Parallel Processing with Alibaba Cloud HybridDB for PostgreSQL
查看>>
Oracle几个初始化参数
查看>>
riot.js教程【五】标签嵌套、命名元素、事件、标签条件
查看>>
wordpress页面前端添加编辑按钮
查看>>
位运算的威力
查看>>
Winform TreeView 查找下一个节点
查看>>