atan2()

基线 2023

新可用

2023 年 3 月起,此功能可在最新的设备和浏览器版本中使用。此功能可能无法在旧版设备或浏览器中使用。

**atan2()** CSS 函数 是一个三角函数,它返回两个介于-infinityinfinity 之间的值的反正切。该函数接受两个参数,并返回表示介于-180deg180deg 之间的<angle> 的弧度数。

语法

css
/* Two <number> values */
transform: rotate(atan2(3, 2));

/* Two <dimension> values */
transform: rotate(atan2(1rem, -0.5rem));

/* Two <percentage> values */
transform: rotate(atan2(20%, -30%));

/* Other values */
transform: rotate(atan2(pi, 45));
transform: rotate(atan2(e, 30));

参数

atan2(y, x) 函数接受两个逗号分隔的值作为其参数。每个值可以是<number><dimension><percentage>。这两个值必须是相同类型,尽管如果它们是<dimension>,则可以具有不同的单位(例如:atan2(100px, 5vw) 是有效的)。

y

点的 y 坐标。计算结果为<number><dimension><percentage>

x

点的 x 坐标。计算结果为<number><dimension><percentage>

返回值

给定两个值xy,函数atan2(y, x) 计算并返回正 x 轴与从原点到点(x, y) 的射线之间的<angle>

正式语法

<atan2()> = 
atan2( <calc-sum> , <calc-sum> )

<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*

<calc-product> =
<calc-value> [ [ '*' | '/' ] <calc-value> ]*

<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )

<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN

示例

旋转元素

atan2() 函数可以用来 rotate 元素,因为它返回一个 <angle>

HTML

html
<div class="box box-1"></div>
<div class="box box-2"></div>
<div class="box box-3"></div>
<div class="box box-4"></div>
<div class="box box-5"></div>

CSS

css
div.box {
  width: 100px;
  height: 100px;
  background: linear-gradient(orange, red);
}
div.box-1 {
  transform: rotate(atan2(3, 2));
}
div.box-2 {
  transform: rotate(atan2(3%, -2%));
}
div.box-3 {
  transform: rotate(atan2(-1, 0.5));
}
div.box-4 {
  transform: rotate(atan2(1, 0.5));
}
div.box-5 {
  transform: rotate(atan2(1rem, -0.5rem));
}

结果

规范

规范
CSS 值和单位模块 Level 4
# 三角函数

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅