页面任意位置塞入这么一段SVG代码:
需要粘滞融合元素的父元素CSS加一句:
filter: url("#goo");效果就有了。
我们先来看一个简单例子:
其中这个
.target {
filter: url("#goo");
}结果这两个圆滚滚的球靠近的时候,就相互融合在一起了,效果如下截图:
眼见为实,若PC电脑,您可以狠狠的点击这里:两个小球拖拽融合demo
拖动右边的圆球,靠近左边这一个,可以看到融合效果。
此效果虽然很酷,实现也很简单。当下还是有一些局限的:
var ua = navigator.userAgent;
if (/Safari|iPhone/i.test(ua) && /chrome/i.test(ua) == false) {
document.body.classList.add('nofilter');
}然后CSS这样写:
body:not(.nofilter) .target {
filter: url("#goo");
}或者使用SVG来实现我们的效果,例如这里的球如果使用SVG元素绘制的话,包括IE浏览器在内,都有不错的效果。
对于方形元素而言,就会出现问题,因为其四角边缘因为高斯模糊而变弯了,于是使用feColorMatrix滤镜alpha通道增强的时候,四边的直角会变成圆角,类似这样:
感觉元素一下子浮肿了。
如果元素原本就是个正圆,则没有这个问题,融合效果最好,因为正圆的高斯模糊它是均匀的。
您可以狠狠地点击这里:带有融合粘滞效果的分享小交互demo
点击分享,就会出现常见社交分享按钮,然后相互间粘滞,同时分享按钮还会抖三抖,效果参见下面Gif:
实现步骤如下:
此时粘滞效果就有了!
为了效果更佳灵动,我们还可以给分享按钮加一个小动画,我们可以从animate.css项目找一个合适的CSS3动画效果,例如jello,拷贝相关CSS代码,添加在分享按钮上。
于是就有了点击分享按钮,分享按钮弹几下,同时里面粘滞出现3个具体分析圈圈。
纯HTML和CSS实现,没有任何JS的参与!
兼容Chrome和Firefox浏览器,对于不支持的浏览器,就是普通的圈圈出现效果,也还不错哦!
低成本,高收益,还不速速用起来。
生命不息,研究不止,对于普通元素,Safari的融合渲染效果比较糟糕,而SVG元素filter属性滤镜则支持效果挺好。那我们是不是可以借助SVG forginObject元素来让Safari等现代浏览器都效果棒棒哒呢!
SVG forginObject元素可以在SVG中直接嵌套完整HTML片段,之前有文章专门介绍过:“SVG
于是整了一段HTML代码测试:
根据身份证/手机号进行核验号码是否有涉险诈骗风险。
根据身份证/手机号/银行卡号核验号码是否有涉诈风险。
根据企业名称或统一社会信用代码等查询企业的相关招聘信息
最新新闻资讯简报,各类国内、国际、体育、娱乐、科技等资讯AI智能总结摘要及详细内容,适合各类AI Agent、穿戴设备进行资讯播报、阅读。
通过传递运营商2G/3G/4G/5G基站的MCC、MNC、TAC、CID信息查询所在位置信息。为用户提供位置服务,如实时导航、周边推荐等。