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 einen Wert zwischen -1
und 1
hat. Die Funktion enthält eine einzelne Berechnung, die zu einer <number>
oder einem <angle>
aufgelöst werden muss, indem das Ergebnis des Arguments als Radiant interpretiert wird. Das bedeutet, dass sin(45deg)
, sin(0.125turn)
und sin(3.14159 / 4)
alle denselben Wert darstellen, 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 Parameter.
Rückgabewert
Der Sinus eines angle
wird immer eine Zahl zwischen −1
und 1
zurückgeben.
- Wenn
angle
infinity
,-infinity
oderNaN
ist, ist das ErgebnisNaN
. - Wenn
angle
0⁻
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 Kasten-Größe
In diesem Beispiel wird sin(30deg)
0.5
zurückgeben, wodurch der Kasten eine Breite von 50px
und eine Höhe von 50px
hat.
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
, wobei die Dauer basierend auf dem Sinuswert reduziert wird. 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> |
Browser-Kompatibilität
Loading…