CSS3中如何使元素曲线运动?

html-css023

CSS3中如何使元素曲线运动?,第1张

CSS3中使用transform属性可实现元素曲线运动。

CSS即层叠样式表(Cascading StyleSheet)。 在网页制作时采用层叠样式表技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。

CSS3是CSS技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括: 盒子模型、列表模块、超链接方式 、语言模块 、背景和边框 、文字特效 、多栏布局等。

特性

圆角表格,对应属性:border-radius。

以往对网页上的文字加特效只能用filter这个属性,这次CSS3中专门制订了一个加文字特效的属性,而且不止加阴影这种效果。对应属性:font-effect。

丰富了对链接下划线的样式,以往的下划线都是直线,这次可不一样了,有波浪线、点线、虚线等等,更可对下划线的颜色和位置进行任意改变。(还有对应顶线和中横线的样式,效果与下划线类似)对应属性:text-underline-style,text-underline-color,text-underline-mode,text-underline-position。

在文字下点几个点或打个圈以示重点,CSS3也开始加入了这项功能,这应该在某些特定网页上很有用。对应属性:font-emphasize-style和font-emphasize-position。

表面上看,需要设置两个点,实际上包含了两个掩藏点 起始点 (0,0) 和 终点 (1,1) 。所以实际上应该是以下效果。

可以看出,贝塞尔曲线是由4个点构成的一条线,可能是任意形状的线。下面给出一些线型例子来说明。

这种运动模式下 x1 ∈ [0, 0.5], 且 y1 >x1 且 x2 ∈ [0.5, 1] 且 y2 <x2 。此时的运动轨迹习惯上称之为 ease ,下面给出一个夸张点的图像:

这种模式下,x1 ∈ [0, 1] 且 y1 <x1 且 x2 ∈ [0, 1] 且 y2 <x2 。 此时的运动轨迹成为 ease-in ,下面是示意图:

这种模式是与 3 的情况相反,所以 x ∈ [0, 1] 且 y >x 时,这里两个点都要符合这种情况才能实现。习惯上称这种情况为 ease-out ,下面给出示意图:

以上的四种情况中,常见的 ease-in-out 与 ease 的曲线一致,只是 ease-in-out 慢的部分更慢,快的部分更快。

可以用过 这个网站 观察贝赛尔曲线的运动轨迹。

另外,本文参考自

css3不能完全按照正弦曲线来做运动的轨迹,但可以模拟,比如曲线上的几个点是(0,0),(1,1),(2,0),(3,1),(4,0),(5,1),动画逻辑如下:

@keyframes myanimate

{

0% {left: 0top: 0}

20% {left: 1top: 1}

40% {left: 2top: 0}

60% {left: 3top: 1}

80% {left: 4top: 0}

100% {left: 5top: 1}

}