CSS-функция `atan2()`
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с марта 2023 года.
atan2() — это тригонометрическая CSS-функция, которая возвращает арктангенс двух значений между -infinity и infinity. Функция принимает два аргумента и возвращает <angle> между -180deg и 180deg, не указывая конкретную единицу измерения, например радианы.
Синтаксис
/* 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>.
Возвращаемое значение
Для двух значений x и y функция atan2(y, x) вычисляет и возвращает <angle> между положительным направлением оси x и лучом, проведённым из начала координат к точке (x, y).
Формальный синтаксис
<atan2()> = atan2( <calc-sum>, <calc-sum> ) <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]* <calc-product> = <calc-value> [ '*' <calc-value> | '/' <number> ]* <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) <calc-constant> = e | pi | infinity | -infinity | NaN
Примеры
Поворот элементов
Функцию atan2() можно использовать для rotate элементов, поскольку она возвращает <angle>.
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
body {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
gap: 50px;
}
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, уровень 4 # trig-funcs |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari для iOS | Samsung Internet | WebView Android | WebView для iOS | |
atan2 |
111 |
111 |
108 |
97 |
15.4 |
111 |
108 |
75 |
15.4 |
22.0 |
111 |
15.4 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/atan2