示意图,过渡和动画:通过CSS过渡和动画提升用户体验
#css #初学者 #设计 #前端

在不断发展的Web开发环境中,创建迷人的用户体验是一个至关重要的目标。级联样式表(CSS)提供了一系列工具来增强交互并吸引用户。在本文中,我们将研究CSS转换,过渡和动画的领域,从而发现它们将静态设计转化为动态和沉浸式网络体验的潜力。

让我们开始开始ð

  1. Tranforms
  2. Transitions
  3. Animations

转换

它是用于旋转,扩展,移动,偏斜等的CSS属性。元素。

与转换属性一起使用的2D方法是:

  1. translate
  2. rotate
  3. scale
  4. skew
  5. matrix

翻译(x,y):

此属性用于沿其包含元素的X和/或y轴移动一个元素,而不会影响文档的正常流或周围元素的布局。

语法:

.box1{
  tansform: translate(30px,100px);
}

注意:translate(x,y):第一个值应偏移x轴,第二个值应偏移y轴。

在上面的代码epen中,我们创建了一个高度为10VH(viewport height)的盒子,宽度为10VW(viewport width)。使用翻译属性,我们从X轴(偏移偏移)和Y轴(偏移偏移)中将框30 PX移动了。

单值语法用于翻译:

.box1{
  tansform: translateX(30px);
}

/*OR*/

.box1{
  tansform: translateY(100px);
}

/*OR*/

.box1{
  tansform: translateX(30px) translateY(100px); /*This will work same as translate(30px,100px) */
}

有关翻译财产的更多信息,请访问:
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate

旋转:

CSS旋转属性用于围绕指定点或轴旋转元素(例如图像,文本或容器)。它使您可以更改元素的视觉取向,使其具有旋转的外观。

旋转以程度指定,正值沿顺时针方向旋转元件,而负值则以逆时针方向旋转。默认旋转点是元素的中心,但是您也可以使用“转换 - 原始”属性指定一个不同的点。

变换 - 原始特性:

CSS转换原始属性确定使用转换属性以其他方式旋转,缩放或转换元素的点。 它使您可以控制转换的枢轴点或轴,从而影响元素在视觉上的变化。

该属性采用从元素上左上角指定水平和垂直偏移的值,,或者您可以使用中心,顶部,底部,左和右键等关键字来定义相对于元素边缘的来源。

注意:必须与变换属性一起使用转换 - 原始属性。

旋转语法:

.box1{
  tansform: rotate(45deg);
}

tranform-Origin的语法:

.box1{
  transform-origin: top right; 
  tansform: rotate(45deg);
}

在上面的编码epen中,我们使用旋转属性从中心来源(默认情况下)旋转了45度的框。

现在,让我们尝试使用变换原属性旋转不同的框架。

您可以调整转换 - 原始值以控制枢轴点并达到所需的转换效果。

注意:|转化原始:X y |第一个值应偏移x轴,第二个值应偏移y轴。

有关旋转财产的更多信息,请访问:
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate

有关转换原产属性的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin

比例:

此属性用于更改元素的大小,使其在保持比例的同时看起来更大或更小。

“比例”属性采用一个或两个值,代表沿水平和垂直轴的缩放系数。单个值平等地缩放两个轴,而两个值允许您独立扩展它们。

值小于1降低尺寸(收缩),值大于1的尺寸(扩大)。

语法:

.box1{
  tansform: scale(2,0.5);
}

练习:尝试将光标放在上面代码epen中的箭头图像上。

请参阅其如何改变大小。这是使用“比例”属性和“悬停”属性实现的。

刻度的单值语法:

.box1{
  tansform: scaleX(2);
}

/*OR*/

.box1{
  tansform: scaleY(0.5);
}

有关标准财产的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale

偏斜:

该特性用于通过沿水平和/或垂直轴倾斜元件来扭曲元素的形状。

偏斜属性将一个或两个角度作为值,代表沿X轴(水平)和Y轴(垂直)偏斜的量。正角向元素朝着一定方向倾斜,而负角则向相反的方向倾斜。

语法:

.box1{
  tansform: skew(45deg, 20deg);
}

在上面的编码epen中,我们沿x轴偏向45度的“框2”。

有关偏斜物业的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew

矩阵:

此属性采用6个参数。借助这些参数,我们可以旋转,扩展,移动(翻译)和偏斜元素。

语法:

matrix(scalex(),skewy(),skewx(),scaley(),translatex(),translatey())

.box1{
  tansform: matrix(2, 45deg, 12deg, 0.5, 10px, 150px);
}

有关矩阵属性的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix

与变换属性一起使用的3D方法为:

  1. translate3d
  2. 旋转3D
  3. 透视

当设置z轴的翻译和旋转属性时,在我们看到任何效果之前,还必须在父元素上设置透视属性。

透视属性确定对象与查看器之间的距离。较小的值会产生更强的3D效果,使对象显得更近且更明显,而较大的值则降低了感知的3D效果,使对象看起来更远。

在设置元素的透视属性时,是获得透视视图而不是元素本身的子元素。

语法:

.container{
  perspective:100px;
}
.box1{
  tansform: translateZ(10px) rotateZ(45deg);
}

有关透视属性的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/perspective

有关转换财产的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/transform


现在有趣的部分开始了ð

过渡

CSS过渡属性用于在修改属性时在指定的持续时间内在元素样式中创建平滑而动画的更改。它使您可以控制元素初始状态和最终状态之间过渡的速度和易度。

过渡属性是一种强大的工具,用于创建更光滑的用户体验并在Web交互中添加视觉抛光。

过渡属性是:

  1. 过渡 - 概括:要过渡的属性名称
  2. 过渡效果:整体过渡的持续时间 3. 过渡 - 定时功能:这用于定义过渡动画的加速度和减速模式。
  3. 过渡 - 延迟:延迟过渡

语法:

.box1{
  background-color: blue;
}

.box1:hover{
  background-color: blue;
  transition-property: background-color;
  transition-duration: 3s;
  transition-timing-function: ease-in;
  transition-delay: 1s;  
}

练习:

  1. 尝试更改上述Codepen中的过渡效率
  2. 尝试清除Box1元素中的所有过渡,而仅以悬停效果运行代码。您会看到这些更改,但是当使用过渡时它们不会那么平稳。因此,我们可以在过渡属性的过渡中实现平稳性。

重要说明 而不是单独使用上述所有属性,我们可以在一个属性中使用它们,即过渡属性的速记属性。

tp - transition -property
td - 过渡效果
ttf - 过渡 - 插入功能
tdy - 过渡 - 延迟

语法:
过渡:TP TD TTF TDY;

过渡属性的速记属性示例:

.box1{
  background-color:black;
}

.box1:hover{
  background-color:orange;
  transition : background-color 2s ease-in 1s;
}

有关过渡属性的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/transition

过渡触发器:

CSS中的过渡触发器确定何时应在元素上发生过渡效应。这些触发因素是启动从一种样式状态到另一种样式的过渡,创造出平滑且视觉上吸引人的动画的事件。常见的过渡触发器包括:

:悬停 - >当用户将光标悬停在元素上时会触发过渡。

:焦点 - >当元素接收到焦点时发生过渡。

:焦点 - > - > - >当元素或任何后代接收到焦点时发生过渡。

:target - >当元素的ID与当前URL的片段匹配时,适用于。

类添加/删除 - >从元素中添加或删除特定类会触发过渡。这通常与用于动态动画的JavaScript结合使用。

有关过渡触发器的更多信息,请访问: https://web.dev/learn/css/transitions/#transition-triggers


动画

CSS动画使您可以对Web元素产生动态和视觉引人入胜的影响。它们可以在不同样式或状态之间进行平稳而受控的过渡,从而增强用户体验。

要创建CSS动画,您可以使用 @keyframes规则来定义动画,该规则指定了动画的中间步骤(键框)。然后,您使用动画属性将动画应用于元素,指定动画的名称,持续时间,计时功能和其他可选设置。

当我们可以通过过渡做同样的事情时,为什么要使用动画?
- >因为在使用过渡时,我们只能从开始状态到最终状态。但是,当我们使用动画时,我们可以根据需要定义尽可能多的状态,并准确地改变每个状态的元素样式。
这两个属性之间的另一个主要区别是,对于过渡属性,需要过渡触发器,但是对于动画,它们不需要任何触发器。而且动画可以在过渡时循环。

动画属性:

  1. 动画名称:动画的名称(自定义名称)
  2. 动画效果:整体动画的持续时间 3. 动画 - 定时功能:这用于定义动画的加速度和减速模式。
  3. 动画播放:动画延迟
  4. 动画读数计数:动画应运行的次数
  5. 动画方向:定义动画的方向

动画属性的值:

  1. 动画名称:自定义名称(可以是您喜欢的任何东西)
  2. 动画效果: S(第二)或MS(毫秒)。 3. 动画 - 定时功能:轻松,轻松,易于输入,线性(默认)等等。
  3. 动画 - 赛: s(第二)或MS(毫秒)。
  4. 动画读数计数:无限,数字。
  5. 动画方向:反向,替代,替代反向。

动画语法:

.box1{
  background-color:black;
  animation-name: animatebox1;
  animation-duration: 3s;
  animation-timing-function: ease-in;
  animation-delay: 1s;
  animation-iteration-count: infinite; 
}


@keyframes animatebox1{
  from{
    background-color:black;
  }
  to{
    background-color:orange;
  }
}

在上面的编码器中,我们使用“动画”属性创建了一个进度栏。

动画属性的速记:

- 动画名称
ad - 动画效果
atf - 动画 - 及时函数
ad - 动画 - 戴
aic - 动画术语计数
adc - 动画方向

语法:

动画:广告ATF AD AIC ADC;

使用百分比值在动画中定义状态:

使用百分比值在CSS动画中定义状态是一种强大的技术,它使您可以在动画进展过程中精确控制元素的外观和行为。通过使用百分比指定密钥帧,您可以创建平滑而复杂的动画,以平稳过渡各个状态。

语法:

@keyframes animatebox1{
  0%{
    background-color:black;
  }
  20%{
    background-color:green;
  }
  60%{
    background-color:orange;
  }
  80%{
    background-color:blue;
  }
  100%{
    background-color:yellow;
  }
}

基于百分比的关键帧可在特定时刻对动画的行为进行细粒度的控制。您可以定义中间状态,控制属性(例如不透明度和颜色),并创建复杂的效果,在不同样式之间平稳过渡。

通过使用关键框架中的百分比值,您可以制作具有视觉吸引力的动画来增强您的网页设计和用户体验。

有关动画属性的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animations/Using_CSS_animations


让我们在LinkedIn ð

上连接

- embrace代码的画布和设计的调色板。作为Web开发人员和设计师,我们将创新和创造力编织到像素和像素中,将其编织成经验。我们共同制作了数字世界,在那里,设计的每一行都是在可能性的画布上的笔触。让我们画一个网络的杰作,一次一个像素。

下次见,以获取更多惊人的指南。在此之前,请继续关注。

快乐的编码ð»

请在评论部分中毫不犹豫地提出疑问。我一定会迅速做出回应。您的询问受到了极大的欢迎,并将获得迅速而彻底的答复。