您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > CSS

如何使用CSS蒙版构建一个动画的表情

时间:2019-08-07 11:03:45  来源:  作者:

还记得我们童年时期曾经看过的漫画吗?那时他们是动画的缩影。如今,动画不仅限于漫画 - 当我们查看手机或查看任何有屏幕的设备时,我们几乎每天都会看到动画。

如今,动画不仅用于吸引注意力,还用于增强用户体验并引导用户流动。在任何好的设计中,动画都以这样的方式添加,即它们与通用流混合,从而创建无缝的用户体验。

因此,在本文中,我们将构建一个具有不同表达式的面部的简单动画,我们将在该过程中学习一点css

入门

我们将使用CSS技术,这在Web开发人员中很少见,但设计人员经常使用。它被称为蒙版

那么当你听到“蒙版”时,你会想到什么?

你可能想象一下封面上的东西。这就是我们需要了解的全部内容。

等等 - 但这篇文章与编码和使用CSS动画有关...

别担心!我们会做对的。

创建基本掩码

假设我们有一个 <div>,background: green;它看起来像这样:

 

如何使用CSS蒙版构建一个动画的表情

 

 

现在,说我有一个face.svg:

 

如何使用CSS蒙版构建一个动画的表情

 

 

如果我们mask-image: url(face.svg);在其上应用CSS属性<div>,您会惊讶地看到我们得到的内容:

 

如何使用CSS蒙版构建一个动画的表情

 

 

你可能会认为这里的事情很奇怪。将face.svg被放置在<div>,但它占去了的颜色background。这与您的预期相反。发生这种情况是因为mask-type使svg的不透明部分透明的属性。这允许背景颜色可见。

我们现在不要深入研究。请记住,我们可以background-color用来改变面具的颜色。如果您熟悉不同的使用方法background-color,我们也可以使用渐变并编写一个简单的渐变,在中心填充红色并径向向外扩展为黑色。代码如下:

background-image: -webkit-radial-gradient( hsla(0, 100%, 50%, .7), hsla(0, 100%, 20%, .8), hsla(0, 100%, 10%, 1));

结果如下:

 

如何使用CSS蒙版构建一个动画的表情

 

 

添加动画

现在让我们为这张空脸添加一些动画。为此,我expression.svg看起来像下面的图像。为简单起见,我创建了具有相同宽度和高度的所有svgs,以便我们避免手动对齐面和表达式。

 

如何使用CSS蒙版构建一个动画的表情

 

 

image.png

现在mask-image有了这个很酷的选项,允许多个图像用作蒙版。所以我们可以这样做:mask-image: url(face.svg), url(expression.svg);。这就是我们现在拥有的:

 

如何使用CSS蒙版构建一个动画的表情

 

 

image.png

CSS蒙版最重要的属性之一是mask-position将蒙版从左上角相对于其父对象定位。我可以使用属性定位多个口罩mask-position只是喜欢mask-image。

所以为了让脸色难过,我们可以使用这样的东西:mask-position: 0 0, 0 12px;。结果如下:

 

如何使用CSS蒙版构建一个动画的表情

 

 

所述第一位置0 0是为face.svg,第二0 12px对expression.svg。这将它从上方推出12px并导致上述表达式。

应用功能

现在让我们在悬停时动画这些表达式。因此,应用hover伪类后得到的完整代码如下:

i {
 background-image: -webkit-radial-gradient(hsla(0, 100%, 50%, .7), hsla(0, 100%, 20%, .8) 60%, hsla(0, 100%, 10%, 1));
 
 mask-image: url('face.svg'), url('expression.svg');
 mask-position: 0 0, 0 12px; /* To make the sad expression */
 transition: mask-position .5s ease-out;
}
i:hover {
 background-image: -webkit-radial-gradient(hsla(120, 100%, 50%, .7), hsla(120, 100%, 20%, .8) 60%, hsla(120, 100%, 10%, 1));
 mask-position: 0 0, 0 0; /* To make the hAppy expression */
 transition: mask-position .1s linear;
}

在使用CSS之后,我们可以这样做:

如何使用CSS蒙版构建一个动画的表情

 

 

这是我们可以用来构建我们几乎每天遇到的那些扣人心弦的动画的方法之一。

一个重要的说明

屏蔽属性可能无法在所有浏览器中使用。因此,为了使他们在所有的浏览器,只是在前面加上特定浏览器标签一样工作-webkit- ,-moz-及-0- 。

您可以在github和codepen上查看完整的代码。

谢谢阅读!我希望你学到了一些东西。

译自:https://medium.com/free-code-camp/how-i-built-a-mood-changing-animation-using-css-masks-565b16ed051f



Tags:CSS蒙版   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
还记得我们童年时期曾经看过的漫画吗?那时他们是动画的缩影。如今,动画不仅限于漫画 - 当我们查看手机或查看任何有屏幕的设备时,我们几乎每天都会看到动画。如今,动画不仅用于...【详细内容】
2019-08-07  Tags: CSS蒙版  点击:(238)  评论:(0)  加入收藏
▌简易百科推荐
Chrome 正在试验 CSS @container 查询器功能,这是由 Oddbird 的 Miriam Suzanne 和一群网络平台开发者支持的 CSS 工作组 Containment Level 3 规范。@container 查询器使我...【详细内容】
2021-12-23  前端晚间课    Tags: CSS   点击:(8)  评论:(0)  加入收藏
CSS选择器很强大下面是我在工作中使用最多的一些选择器:相邻元素, 英文称为sibling, 也就是兄弟姐妹的意思.其实很形象, 比喻两个dom是相邻的.但是邻居很多, 紧密相邻的, 还...【详细内容】
2021-12-23  不只是个小前端    Tags:CSS选择器   点击:(6)  评论:(0)  加入收藏
这篇文章重点介绍一些强大的 CSS 代码片段,用它们可以执行一些繁重的布局编程工作,还能帮助我们构建强大的新式CSS布局。这里我们会介绍10 种新式 CSS 布局和大小调整技术,突出...【详细内容】
2021-12-21  前端晚间课    Tags:CSS   点击:(9)  评论:(0)  加入收藏
CSS框架提供了设计一致解决方案的基本结构,以解决前端web开发中的常见问题。它们提供了通用功能,可以针对特定场景和应用程序进行覆盖。这大大减少了开始创建应用程序和网站所...【详细内容】
2021-12-06  粤嵌教育    Tags:v   点击:(15)  评论:(0)  加入收藏
作者:前端进阶者来源:前端进阶学习交流一、前言 我们经常在网页上 ,游戏界面加载时会看到加载进度条的效果,我们往往会以为这些加载进度条的效果,很难实现。今天教大家JS+CSS结合...【详细内容】
2021-11-05  Nodejs开发    Tags:CSS   点击:(45)  评论:(0)  加入收藏
<template> <div> <div class="triangle"></div> </div></template><style scoped> .triangle { width: 0; height: 0; border-width: 20px; border-styl...【详细内容】
2021-11-04  荣邦小伙917    Tags:css   点击:(40)  评论:(0)  加入收藏
一提起图标,大家可能第一个会想到PS、美工等词语,但很多小图标现在根本都不需要再打开PS了。1、常见的括号( 前进或后退“>” ).arrow{ width:12rpx; height:12rpx; border-...【详细内容】
2021-10-12  滇東小贰锅    Tags:css   点击:(55)  评论:(0)  加入收藏
在过去的几年里,Web开发已经变得非常流行。每年都会发布许多前端框架,Bootstrap一直是最受欢迎的一个,但是,还有许多其他的框架,你可能没有听说过,但绝对值得一试。想学的同学可以...【详细内容】
2021-09-27  粤嵌教育    Tags:CSS框架   点击:(74)  评论:(0)  加入收藏
水平和垂直对齐第一种方式 : grid + place-items .parent { display: grid; place-items: center; } /*注: place-items 是 justify-items 和 align-items 的简写属性 */...【详细内容】
2021-09-02  又菜又爱学习的程序员    Tags:CSS   点击:(84)  评论:(0)  加入收藏
5个有用的 CSS 布局生成器1、 cssgr.id如果你是前端开发人员,这是一个非常有用的网站。你可以首先指定所需的行数和列数,或者在给定的选项中进行选择,然后为其生成代码。这使你...【详细内容】
2021-08-26  程序员文周    Tags:css布局   点击:(144)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条