sin()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since März 2023.
Die sin() CSS Funktion ist eine trigonometrische Funktion, die den Sinus einer Zahl zurückgibt, welcher ein Wert zwischen -1 und 1 ist. Die Funktion enthält eine einzelne Berechnung, die entweder zu einer <number> oder einem <angle> aufgelöst werden muss, indem das Ergebnis des Arguments als Bogenmaß interpretiert wird. Das heißt, sin(45deg), sin(0.125turn) und sin(3.14159 / 4) repräsentieren alle denselben Wert, ungefähr 0.707.
Probieren Sie es aus
transform: translateX(calc(cos(0deg) * 140px))
translateY(calc(sin(0deg) * -140px));
transform: translateX(calc(cos(90deg) * 140px))
translateY(calc(sin(90deg) * -140px));
transform: translateX(calc(cos(135deg) * 140px))
translateY(calc(sin(135deg) * -140px));
transform: translateX(calc(cos(180deg) * 140px))
translateY(calc(sin(180deg) * -140px));
transform: translateX(calc(cos(-45deg) * 140px))
translateY(calc(sin(-45deg) * -140px));
<div class="circle">
<span class="dot" id="example-element"></span>
</div>
:root {
--radius: 140px;
--dot-size: 10px;
}
.circle {
display: grid;
place-content: center;
margin: 0 auto;
width: calc(var(--radius) * 2);
aspect-ratio: 1;
border-radius: 50%;
border: 2px solid #666666;
background-image:
radial-gradient(black var(--dot-size), transparent var(--dot-size)),
linear-gradient(135deg, blue, deepskyblue, lightgreen, lavender, honeydew);
}
.dot {
display: block;
width: var(--dot-size);
aspect-ratio: 1;
border-radius: 50%;
border: 2px solid #666666;
background-color: #ff6666;
transform: translateX(calc(cos(0deg) * var(--radius)))
translateY(calc(sin(0deg) * var(--radius) * -1));
}
Syntax
/* Single <angle> values */
width: calc(100px * sin(45deg));
width: calc(100px * sin(0.25turn));
width: calc(100px * sin(1.0471967rad));
/* Single <number> values */
width: calc(100px * sin(63.673));
width: calc(100px * sin(2 * 0.125));
/* Other values */
width: calc(100px * sin(pi / 2));
width: calc(100px * sin(e / 4));
Parameter
Die sin(angle)-Funktion akzeptiert nur einen Wert als ihren Parameter.
Rückgabewert
Der Sinus eines angle gibt immer eine Zahl zwischen −1 und 1 zurück.
- Wenn
angleinfinity,-infinityoderNaNist, ist das ErgebnisNaN. - Wenn
angle0⁻ist, ist das Ergebnis0⁻.
Formale Syntax
<sin()> =
sin( <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
Beispiele
>Ändern der Boxgrößen
In diesem Beispiel gibt sin(30deg) den Wert 0.5 zurück, wodurch die Box eine Breite und Höhe von 50px aufweist.
div {
background-color: red;
width: calc(sin(30deg) * 100px);
height: calc(sin(30deg) * 100px);
}
Steuerung der Animationsdauer
Ein weiterer Anwendungsfall ist die Steuerung der animation-duration, um die Dauer basierend auf dem Sinuswert zu reduzieren. In diesem Fall beträgt die Animationsdauer 1s.
div {
animation-name: myAnimation;
animation-duration: calc(sin(0.25turn) * 1s);
}
Spezifikationen
| Specification |
|---|
| CSS Values and Units Module Level 4> # trig-funcs> |