查看原文

查看在线演示Demo和更多原文内容教程: 7种炫酷HTML5 SVG液态水滴融合动画特效

这是一组使用HTML5 SVG过滤器制作的炫酷液态水滴融合动画特效。这些SVG动画特效使一些HTML元素,如菜单、分页按钮、APP、选择框等元素的过渡动画像几粒水滴一样融合分解,效果非常的酷。

SVG Filters
通过SVG Filters我们可以修改一个给定的图形,创建我们需要的结果。SVG中包含了一种可以执行各种操作的filter元素,下面列出了一些可用的SVG filter元素:

  • feBlend
  • feColorMatrix
  • feComponentTransfer
  • feComposite
  • feConvolveMatrix
  • feDiffuseLighting
  • feDisplacementMap
  • feFlood
  • feGaussianBlur
  • feImage
  • feMerge
  • feMorphology
  • feOffset
  • feSpecularLighting
  • feTile
  • feTurbulence
  • feDistantLight
  • fePointLight
  • feSpotLight

当使用一个SVG filter的时候,我们可以将一个操作的结构作为另一个操作的输入,从而创建出无限的动画效果。
最常见的SVG filter效果是通过<feGaussianBlur>来制作模糊效果。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="600" height="400"><defs><filter id="blur" x="0" y="0"><feGaussianBlur in="SourceGraphic" stdDeviation="5" /></filter></defs><rect x="50" y="50" width="500" height="300" fill="#8d81ac" filter="url(#blur)" />
</svg>     

<feGaussianBlur>元素的in属性用于定义原始的SVG输入,可以使用下面的几个关键字:

  • SourceGraphic
  • SourceAlpha
  • BackgroundImage
  • BackgroundAlpha
  • FillPaint
  • StrokePaint

这里也可以使用指向前一个执行结果的字符串,通过执行结果字符串,我们可以创建连续的动画效果。在液态水滴融合动画特效中就是使用这种方法制作的。
更为复杂的例子是组合使用多个SVG filter来制作所需的效果,如 drop shadow 阴影效果

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="600" height="400"><defs><filter id="dropshadow" x="0" y="0" width="200%" height="200%"><feOffset result="offsetResult" in="SourceAlpha" dx="20" dy="20" /><feGaussianBlur result="blurResult" in="offsetResult" stdDeviation="5" /><feBlend in="SourceGraphic" in2="blurResult" mode="normal" /></filter></defs><rect width="500" height="300" fill="#8d81ac" filter="url(#dropshadow)" />
</svg>      

得到的结果如下:

这种效果的原理是先移动元素,然后将该元素的副本进行模糊处理来制作阴影效果。通过feBlend使用in="SourceAlpha"简单的设置原始图像位于模糊图像的上面。该通道是原始图像的alpha通道,模糊后会变为黑色。

SVG Filters for HTML
在HTML元素上使用SVG Filters十分简单。可以在HTML页面中定义需要的SVG Filter,然后可以通过CSS样式表来使用它们:

.filterClass {-webkit-filter: url("#goo");filter: url("../index.html#goo");
}       

定义一个没有-webkit-前缀的不同路径值有两个原因:一是为了使Firefox浏览器能够正确的找到该路径。二是对于相对路径,如果我们只使用#goo,它会在当前页面中查找样式表,而我们使用的是引用样式表,因此会找不到这个filter。通过设置这种设置,不论是内置样式表还是外部样式表,都可以正确的找到所需的filter。我们也可以通过JavaScript来添加filter。

function setFilter(value){$effectContainer.css({webkitFilter: value,filter: value,});
}        

上面的value值类似于'url(#goo)'
当前浏览器对在HTML元素上使用 SVG Filters 的支持非常好,可以查看这里。
下面是一些学习SVG Filters的好资料,可以学习参考:

  • Applying SVG effects to HTML content
  • Hands On: SVG Filter Effects
  • Cross-browser filters with CSS and SVG
  • Smarter SVG filters
  • How to go beyond the basics with SVG filters

应用举例
我们来看看其中的圆形菜单按钮例子的实现方法:

这种效果的HTML代码如下:

<div class="menu"><div class="menu-wrapper"><ul class="menu-items"><li class="menu-item"><button class="menu-item-button"><i class="menu-item-icon icon icon-reply"></i></button><div class="menu-item-bounce"></div></li><li class="menu-item"><button class="menu-item-button"><i class="menu-item-icon icon icon-box"></i></button><div class="menu-item-bounce"></div></li><li class="menu-item"><button class="menu-item-button"><i class="menu-item-icon icon icon-trash"></i></button><div class="menu-item-bounce"></div></li></ul><button class="menu-toggle-button"><i class="fa fa-plus menu-toggle-icon"></i></button></div>
</div>         

在HTML中定义一个内联的SVG对象:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="goo"><feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" /><feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 19 -9" result="goo" /><feComposite in="SourceGraphic" in2="goo" operator="atop"/></filter></defs>
</svg>  

接下来使用如上面所说的CSS filter 属性来指定filter的路径和样式:

.menu {/* other styles */-webkit-filter: url("#goo");filter: url("../menu.html#goo");
}         

下面来分析一些filter,filter的第一步操作是通过feGaussianBlur来模糊对象。

接下来是feColorMatrix过滤器,它在例子中的作用的增强alpha通道,于blur结合,创建更加强烈的模糊效果。

Learn more about how to apply a color matrix here.
最后,Wilder使某些元素可见,需要在模糊对象只是绘制原始的对象,为了做到这一点,我们在atop操作中使用feComposite过滤器。

多功能用途 Gooey Effects 7种炫酷HTML5 SVG液态水滴融合动画特效相关推荐

  1. html5融合效果,7种炫酷HTML5 SVG液态水滴融合动画特效

    这是一组使用HTML5 SVG过滤器制作的炫酷液态水滴融合动画特效.这些SVG动画特效使一些HTML元素,如菜单.分页按钮.APP.选择框等元素的过渡动画像几粒水滴一样融合分解,效果非常的酷. SVG ...

  2. html5 loading游戏,12种炫酷html5 svg加载loading动画特效

    12种炫酷html5 svg加载loading动画特效 刘振兴 代码分享 2015年11月23日 14182 3条评论 这是一款使用HTML5 SVG技术制作的12种炫酷html5 svg加载load ...

  3. html加载特效大全,10种炫酷的CSS3 loading加载动画特效

    这是一组效果非常炫酷的纯CSS3 loading加载动画特效.这组loading动画共10种不同的效果,全部使用animation帧动画制作而成.这些特效代码简洁,效果炫酷,非常值得学习借鉴. 制作方 ...

  4. 12种超酷HTML5 SVG和CSS3浮动标签效果

    这是一组效果很炫酷的SVG和CSS3表单浮动标签特效.这组浮动标签特效共12种效果,这些浮动标签效果部分在元素的伪元素上使用CSS transitions和CSS animations完毕,一部分则使 ...

  5. html5 loader,7种基于GSAP的SVG Loader加载动画特效

    这是一组效果非常炫酷的基于GSAP的SVG Loader加载动画特效.这组SVG加载动画特效共有7种效果,分别使用GSAP对SVG进行操纵,制作出各种炫酷的Loading加载动画效果. 这些SVG加载 ...

  6. jsp预加载转圈_30种CSS3炫酷页面预加载loading动画特效(推荐)

    这是一组效果非常炫酷的CSS3页面预加载loading动画特效.该特效共有30种不同的loading效果.所有的加载动画都是使用CSS3来完成,jQuery代码只是用于隐藏加载动画.当你点击页面的任何 ...

  7. CSS3和js炫酷点击按钮3D翻转动画特效

    简要教程 flipside是一款使用CSS3和js制作的炫酷点击按钮无缝过渡到确认面板的过渡动画特效.该点击按钮特效在按钮不同方向的边部点击时,产生的过渡动画特效是不一样的. 在线预览   源码下载 ...

  8. html css浮动标签,12种超酷HTML5 SVG和CSS3浮动标签效果

    JAVA生成条形码 1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import j ...

  9. html炫酷在线,程序猿必备的10款超炫酷HTML5 Canvas插件

    1.超炫酷HTML5 Canvas 3D旋转地球动画 这是一款基于HTML5 Canvas的3D地球模拟动画,动画以太空作为背景,地球在太空中旋转,同时我们也可以拖拽鼠标来从不同的角度观察地球.另外我 ...

最新文章

  1. Kotlin数组(Array)
  2. 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )
  3. Qt-ros插件:创建工程,编译实现操控小乌龟(二)
  4. eclipse+android source code
  5. 锐起无盘服务器安装教程,锐起无盘安装方法 图文教程
  6. 学生命科学要学计算机吗,现在学生物学出路真的有那么不济吗?
  7. Python文摘:Requests (Adavanced Usage)
  8. 通过 poi 导入 Excel代码
  9. android省市区三级联动案例:(一)运行效果
  10. mybaties知识点整理与SSM
  11. 求2020 CFA二级notes资源,谢谢!
  12. vmware fusion个人版
  13. 图片放大后模糊的照片怎么处理清晰?
  14. Mac电脑没声音了怎么办?
  15. 【艾琪出品】-【福建师范大学】-福师《计算机应用基础》在线作业二参考资料正确答案
  16. android 设置应用权限管理,几种安卓权限管理应用介绍
  17. crontab格式写错出现报错
  18. 已解决,软件V2报错 failed to read response header > websocket: close 1005 (no status)问题
  19. 新冠状病毒死亡率问题
  20. android 验证邮箱格式,android开发中, 如何验证邮箱的格式 ?

热门文章

  1. MQ admin 账号登陆失败,RabbitMQ admin 账户默认密码,RabbitMQ 添加admin 账户
  2. windows如何使用OBS软件
  3. 在TCP/IP网络中,为各种公共服务保留的端口号范围
  4. Springboot遇到的一些问题
  5. 用老项目来缅怀下逝去的青春
  6. 一首老歌——郑钧《流星》
  7. python:实现余数定理算法(附完整源码)
  8. 智能显示模块120问
  9. 我希望 明天的自己 像一道彩虹 还是刚淋过雨
  10. 【深入了解ADC:模数转换器的工作原理及应用】