记录--开局一张图,构建神奇的 CSS 效果
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助假设,我们有这样一张Gif图:利用CSS,我们尝试来搞一些事情。图片的GlitchArt
假设,我们有这样一张 Gif 图:
利用 CSS,我们尝试来搞一些事情。
(相关资料图)
在这篇文章中 --CSS 故障艺术,我们介绍了利用混合模式制作一种晕眩感觉的视觉效果。有点类似于抖音的 LOGO。
像是这样:
假设,我们有这样一张图:
只需要一个标签即可
给两张同样的图片,叠加上 青色#0ff
和 红色#f00
,并且错开一定的距离,两张图都要加上background-blend-mode: lighten
,其中一张再加上mix-blend-mode: darken
:
.mix { width: 400px; height: 400px; background: url($img), #0ff; background-blend-mode: lighten; &::after { content: ""; position: absolute; margin-left: 10px; width: 400px; height: 400px; background: url($img), #f00; background-blend-mode: lighten; mix-blend-mode: darken; }}
得到如下效果:
简单解释下:
因为图片本身不是红色和青色的,所以需要通过 background-image
叠加上这两种颜色,并通过 background-blend-mode: lighten
让其表现出来
为了保持中间叠加部分的原色,需要再叠加一个 mix-blend-mode: darken
反向处理一下。(不理解的同学可以打开调试,手动关掉几个混合模式,自己感受感受即可)
完整的 DEMO:
图片的类抖音 LOGO Glitch 效果
当然,这里使用 Gif 图也是完全可以的,我们替换下我们的 Gif 图,看看会得到什么样的一种效果:
有点意思,完整的代码你可以戳这里:iKUN - 使用background-blend-mode | mix-blend-mode 实现类抖音LOGO晕眩效果
混合模式当然不止是这样。
我们再来实现一个有趣的效果。
首先,找一张地球图,可能像是这样(是不是有点眼熟):
把我们的人物放上去,得到这样一种效果:
神奇的事情在于,如果,我们给叠加在上面的动图,添加一个混合模式,会发生什么呢?尝试一下:
通过混合模式 mix-blend-mode: multiply
,巧妙的消除了大部分非人物的背景,再通过 filter: contrast(3)
加深这个效果,彻底去掉动图背景,融入了我们的地球背景中。
这样,我们巧妙的将两张图,融合成了一张图。
当然,多调试调试,还能有不一样的效果,这里我实现了两种不一样的效果,完整的代码如下:
div { position: relative; margin: auto; width: 400px; height: 500px; flex-shrink: 0; background: url(earth.jpg); background-size: cover; background-position: 0 -150px; background-repeat: no-repeat; &::before { content: ""; position: absolute; top: 240px; left: 160px; width: 70px; height: 90px; background: var(cxk.gif); background-size: cover; background-position: -30px 0; mix-blend-mode: multiply; filter: contrast(3); }}.white { &::before { mix-blend-mode: color-dodge; filter: invert(1) contrast(3); }}.black { &::before { background: var(--bgUrl), #000; background-size: cover; background-position: -70px 0; mix-blend-mode: multiply; filter: contrast(3); }}
这样,我们就得到了两种不一样的效果:
完整的 Demo,你可以戳这里:CodePen Demo -- CSS iKUN Animation
上面的效果不错,但是,还远远不够。
有的时候,我们只想更突出主题,不想过多的看到背景元素。
怎么办呢?
这里,我介绍两种还不错的小技巧,当然,这个技巧对图片本身可能会有一点点要求。
第一个技巧,是我在这篇文章中,曾经介绍过的一个技巧 -- 巧用 background-clip 实现超强的文字动效。
这里的核心在于,借助 background-clip: text
能够只在文字部分展示图片内容的特性,结合滤镜和混合模式的处理,实现一种文字动图效果。达到有效的去除一些背景的干扰。
我们一起来看看。
还是这张 Gif 图:
我们首先通过滤镜 filter: grayscale(1)
,将他从彩色的,处理成黑白灰的:
p { background: url(xxx); filter: grayscale(1);}
处理后的图片,大概会是这样:
基于一张黑白底色的图片,我们再运用background-clip: text
,再通过混合模式mix-blend-mode: hard-light
,并且,很重要的一点,我们把这个效果放在黑色的背景之上:
body { background: #000;}p { color: transparent; background: url(xxx) center/cover; background-clip: text; filter: grayscale(1); mix-blend-mode: hard-light;}
将会得到这样一种神奇的效果,通过混合模式的叠加处理,文字的亮部将会保留,而暗部则会与黑色背景融合:
当然,我们更希望的是,人的部分展示保留,而 Gif 图片中的背景部分被隐藏,就完美了!
这里,我们继续优化下代码,我们希望能把被 grayscale()
处理过的原图的明暗部分置换,刚好,在 filter
中,存在一个 invert()
函数,能够反转输入图像的色值。
因此,在 grayscale()
之后,再配合一次 invert(1)
函数:
body { background: #000;}p { color: transparent; background: url(xxx) center/cover; background-clip: text; filter: grayscale(1) invert(1); mix-blend-mode: hard-light;}
OK,至此,我们利用纯 CSS 实现了这样一种 unbelievable 的文字效果:
合理添加混合模式
mix-blend-mode
,能够更好的去除背景的干扰,实际使用的时候根据不同图片的颜色需要进行一定的调试。
CodePen Demo - iKUN Animation
那是不是只有上述的方式可以干掉图片的背景,保留主体人物部分呢?
当然不止,还有其他方式。下面,我们不借助 background-clip: text
,通过另外一种借助混合模式和滤镜的方式去掉背景干扰。
我们借助 Demo 1 的例子继续,就是如下这个效果:
在这个例子的基础上,我们直接加上 filter: grayscale(1) invert(1)
和 mix-blend-mode: hard-light
,像是这样:
.mix { background: url($img), #0ff; background-blend-mode: lighten; filter: grayscale(1) invert(1); mix-blend-mode: hard-light; &::after { content: ""; position: absolute; margin-left: 10px; background: url($img), #f00; background-blend-mode: lighten; mix-blend-mode: darken; }}
看看效果:
Wow,怎么做到的呢?我们来调试一些,你就能更好的 Get 到其中的奥妙:
这里,核心发挥作用的还是 filter: grayscale(1) invert(1)
,而 mix-blend-mode: hard-light
的意义是让一些不那么明显的背景直接比较被干掉。
完整的代码,你可以戳:CodePen Demo -- iKUN Animation
有点意思,但还不够。我们再回到 background-clip: text
的效果中。
背景图在动,我们能不能让文字也动起来呢?这样,整个动画就处于一种 Gif 在图,我们的内容也在动的双重动效之下。
尝试一下,这里为了尝试更多的效果,我借助了 CSS-doodle 这个库,这里我们核心要做的事情是:
background-clip: text
只展示文字部分的背景图的特性,首先设置多个重叠在一起的 DIVfilter: grayscale(1) invert(1)
,只展示人的部分background-clip: text
animation-delay
上面其实只是最核心的一些流程介绍,可以结合代码一起看看,完整的 CSS-doodle 代码如下:
:doodle { @size: 70vmin 70vmin; } :container { position: relative; filter: grayscale(1) invert(1); } position: absolute; inset: 0; :after { position: absolute; content:"---------"; inset: 0; font-size: 24px; line-height: 0; color: transparent; background: url(xxx) center/cover; background-clip: text; padding-top: @r(69vmin); animation: move .5s @r(-0.99s) infinite linear; } @keyframes move { 0% { padding-left: 0 } 100% { padding-left: 70vmin; } }
html,body { position: relative; margin: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; background-color: #000; cursor: pointer;}
这样,我们就得到了一种图在动,内容也在动的效果:
当然,这个效果可能会有一点绕!实际上你可以想象一下,把图片固定,通过 background-clip: text
透出图片内容,同时,让文本内容动起来,就是如此。如果去掉 background-clip: text
看看下图,可能你会更好理解一点:
当然,实际上如果去掉
background-clip: text
并不会如上图所示,因为这里每一层会使用一张背景图,background-clip
无法引用于它的子元素,只能应用于本身,所以这个动画也有一个缺陷,如果图层数量太多,效果会比较卡顿。
CodePen Demo -- CSS Doodle - iKUN Animation
修改每个 DIV 的文本内容,得到的效果也不相同,像是把内容替换成 .。.
,可以得到这样的效果:
CodePen Demo -- CSS Doodle - iKUN Animation
OK,最后我们再来尝试下 3D 视角。
使用 CSS,我们可以非常轻松的实现 3D 多面体,像是这样:
如果我们把每边的图片,替换成上述的效果,再把我们的视角放置于中间,会发生什么呢?看看,八面体的图片墙:
再尝试把视角,放进 3D 照片墙的中间:
Wow,是不是挺有意思的,完整的 Demo,你可以戳这里:iKUN Animation
不断改变 perspective
,还可以得到不一样的观感体验,感兴趣的,可以自己调试调试。
总结一下,本文通过一张 Gif 图,介绍了一些利用 CSS 来实现的有趣例子。
当然,CSS 的强大远不止这样,本文仅仅是挖掘了一个方向,从将人物凸显的方向,列出了一些我认为比较有意思的动效。
关键词:
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助假设,我们有这样一张Gif图:利用CSS,我们尝试来搞一些事情。图片的GlitchArt
1、《慈祥的母亲》-降央卓玛噢慈祥的母亲是美人中的美人噢像那白度母一样心地善良她背水走过的小路柳树轻轻摇晃罗她挤
随着温度一日一日的降低,越来越多的人群在外出的时候会选择食用一些火锅来暖身,其中羊蝎子就是经常食用的一种。那么羊蝎子为什么叫羊蝎子呢
1、新增本土:0;2、新增无症状:0;3、现有确诊:84;4、累计确诊:149;5、累计治愈:65;6、累计死亡:0;
1、国家行政机关的监督主要包括:行政监察机关;国家审计机关;上级行政机关。本文到此分享完毕,希望对大家有所帮助。
北海市气象台发布雷电黄色预警信号【III级 较重】【2023-03-29】
以下是工业富联在北京时间3月29日13:05分盘口异动快照:3月29日,工业富联盘中跌幅达5%,截至13点05分,报15 55元,成交28 99亿元,换手率0 88
为推动2023民生领域案件查办“铁拳”行动走深走实,伊宁县市场监督管理局聚焦“民意最盼、危害最大、市场监管风险和压力最大”的重点领域,挥
谁是中国空调市场“第四强”?
3月24日,察右后旗迎来了热电联产特许经营项目开工仪式,该项目计划总投资5 29亿元。据悉,该热电联产项目计划今年10月底前机组并网发电,并将
FDIC表示,鼓励客户在4月5日之前转移存款,如果客户没有这么做,FDIC将会把支票邮寄到记录在案的地址
3月29日,斯诺克巡回锦标赛1 4决赛,一场强强对话,凯伦-威尔逊10-4大胜了阿里-卡特,成为了丁俊晖之后又一位闯入到4强的球员,而威尔逊和丁俊
1、首先我们要知道,能滑行的要比不能滑行的轻松,能变速的要比单速的省力。2、车子轻的要比重的好加速。3、所以死飞和活飞单
今天小编肥嘟来为大家解答以上的问题。军训征文800字高一团结,军训征文800字相信很多小伙伴还不知道,现在让我们一起来看看吧!1、军训心得体
一、天津最新疫情消息-数据概览:1、新增本土:41;2、新增无症状:0;3、现有确诊:135;4、累计确诊:2741;5
今晚RedmiNote12Turbo正式发布,这一代的小金刚除了定位和性能升级之外,官方还带来python了哈利波特联名定制版。作为全球首款哈利波特联名定
28日,山西省政府新闻办举行新闻发布会,解读今年山西省委一号文件《关于做好2023年全面推进乡村振兴重点工作的实施意见》。
“悦跑监利·逐梦汉江”,400人东荆河堤上激情开跑!
扬杰科技3月28日公告,2022年公司营业收入518亿元,同比增长222%;归母净利润61亿元,同比增长317%;基本每股收益08元。报告期内,IGBT、
3月28日,西藏林芝第二十届桃花旅游文化节开幕式上的文艺表演。李林摄3月28日,西藏林芝第二十届桃花旅游文化节开幕式上的文艺表演。李林摄3月
我们应该有规则地去购买,而不是被一时的冲动所冲昏了头脑。我们要理智,要镇定。我们要理性地控制自己的消费数额,要遵循彩券的使用原则与法
3月28日,中国消费者协会发布《商品过度包装问题研究和消费者感知调查报告》。在商品过度包装治理感知效果方面,调查结果显示,消费者对于国家
3月21日,西安市未央区杨善寨小学进行本学期第一次学生作业常规检查。
1、首先,任何一款在售的保险产品都是靠谱的。2、因为背后都会有保监会监管着,保障投保人的权益。3、所以说好医保长期医疗2020是靠谱的。4、
东北网3月28日讯近日,大庆市“无废城市”重点项目之一的生活垃圾焚烧发电项目完成2号炉安装,大庆市“无废城市”建设全面提速。据大庆市城管局
Copyright 2015-2022 南方酒业网 版权所有 备案号:粤ICP备18023326号-21 联系邮箱:855 729 8@qq.com