有趣的 CSS 数学函数

html-css027

有趣的 CSS 数学函数,第1张

前言

之前一直在玩three.js ,接触了很多数学函数,用它们创造过很多特效。于是我思考:能否在 CSS 中也用上这些数学函数,但发现 CSS 目前还没有,据说以后的新规范会纳入,估计也要等很久。

然而,我们可以通过一些小技巧,来创作出一些属于自己的CSS 数学函数,从而实现一些有趣的动画效果。

让我们开始吧!

注意 :以下的函数用原生 CSS 也都能实现,这里用 SCSS 函数只是为了方便封装,封装起来的话更方便调用

绝对值就是正的还是正的,负的变为正的

可以创造 2 个数,其中一个数是另一个数的相反数,比较它们的最大值,即可获得这个数的绝对值

原数减 1 并乘以一半即可

数轴上两点距离就是两点所表示数字之差的绝对值,有了上面的绝对值公式就可以直接写出来

其实这个也不会实现~不过之前看到过 一篇文章[1] 写到了如何在 CSS 中实现三角函数,在此表示感谢

以下的几个动画特效演示了上面数学函数的作用

创建一排元素,用内部阴影填充,准备好我们的数学函数

这里用了 2 个动画:

地址: Symmetric Line Animation[2]

如何将一维的升成二维?应用网格系统即可

跟上面的动画一模一样

地址: Symmetric Grid Animation[3]

可以换一种动画shuffle (穿梭),会产生另一种奇特的效果

地址: Shuffle Grid Animation[4]

创建7 个不同颜色的(这里直接选了彩虹色)列表,每个列表有 40 个子元素,每个子元素是一个小圆点

让这7 个列表排列在一条线上,且 z 轴上距离错开,设置好基本的 delay

运用上文的三角函数公式,让这些小圆点以余弦的一部分形状进行排列

对每个小圆点应用上下平移动画,平移的距离就是余弦的波动距离

跟上面一个套路,计算从中间开始的delay ,再应用到动画上即可

CSS 数学函数能实现的特效远不止于此,希望通过本文能激起大家创作特效的灵感~

[1]在 CSS 中使用三角函数绘制曲线图形及展示动画: https://github.com/chokcoco/iCSS/issues/72

[2]Symmetric Line Animation: https://codepen.io/alphardex/pen/vYmqvpe

[3]Symmetric Grid Animation: https://codepen.io/alphardex/pen/zYwgdZO

[4]Shuffle Grid Animation: https://codepen.io/alphardex/pen/YzVmYaV

[5]Rainbow Sine: https://codepen.io/alphardex/pen/GREKJbL

文字段的反向排列:

运行代码

<script type="text/javascript">//functionscbg(objRef, state){ objRef.style.backgroundColor = (1 == state) ? '#EEEEEE' : '#FFFFFF'return}//</script><table><tr><td width="152" height="300"><center><bdo dir="rtl">欢迎光临网页教学网</bdo></td></tr></table>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

两种竖排的:

运行代码

<div style="width:5pxfloat:left"><font face="@隶书" size="5px" color="red">只要你坚持不懈什么样的结果都有可能</font></div>

<div style="position:absolutefilter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)float:right"><font face="华文行楷" size="5px" color="blue">只要你坚持不懈什么样的结果都有可能</div>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

float,css的一种属性,主要属性值为:left(左浮动)、none(不浮动)、right(右浮动)、inherit(继承父元素浮动),多用于网页排版。

float属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。

扩展资料

CSS属性

1、整数和实数

在CSS中只能使用浮点小数,而不能像其他编程语言那样使用科学记数法表示实数,即1.2E3在CSS中将是不合法的。下面是几个正确的例子,整数:128、-313,实数:12.20、1415、-12.03。

2、长度量

相对长度单位有:em——当前字体的高度,也就是font.size属性的值;ex——当前字体中小写字母x的高度;Dx——一个像素的长度,其实际的长度由显示器的设置决定,比如在800木600的设置下,一个像素的长度就等于屏幕的宽度除以800。

3、百分数量(percentages)

百分数量就是数字加上百分号。显然,百分数量总是相对的,所以和相对长度量一样,百分数量不被子级元素继承。

参考资料来源:百度百科-CSS

参考资料来源:百度百科-FLOAT