sin()
Baseline
2023
Newly available
Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die sin()
CSS-Funktion ist eine trigonometrische Funktion, die den Sinus einer Zahl berechnet, was einen Wert zwischen -1
und 1
ergibt. Die Funktion enthält eine einzige Berechnung, die entweder zu einer <number>
oder zu einem <angle>
aufgelöst werden muss, indem das Ergebnis des Arguments als Bogenmaß interpretiert wird. Das bedeutet, sin(45deg)
, sin(0.125turn)
und sin(3.14159 / 4)
stellen alle denselben Wert dar, 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 Funktion sin(angle)
akzeptiert nur einen Wert als Parameter.
Rückgabewert
Der Sinus eines angle
gibt immer eine Zahl zwischen −1
und 1
zurück.
- Wenn
angle
unendlich
,-unendlich
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 Box-Größen
In diesem Beispiel wird sin(30deg)
0.5
zurückgeben, was die Box 50px
breit und 50px
hoch macht.
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
, indem die Dauer basierend auf dem Sinuswert reduziert wird. In diesem Fall wird die Animationsdauer 1s
betragen.
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…