Implémenter la rotation/rotation des objets à l'aide de la saisie de formulaire et des curseurs
P粉007288593
2023-08-16 16:16:28
<p>J'ai un objet appelé #person et je dois le faire pivoter de -180 degrés à 180 degrés avec l'entrée d'un curseur. J'ai synchronisé le curseur avec la zone de saisie pour afficher la valeur d'angle actuelle et j'ai essayé d'écrire une fonction mais cela n'a pas fonctionné. J'essaie d'utiliser style.transform. Ayant utilisé Bootstrap et jQueryUI dans mon projet, il serait également utile que je puisse utiliser ces deux frameworks au lieu du JavaScript standard pour résoudre le problème. </p>
<pre class="brush:php;toolbar:false;">HTML
<label for="angleSlider" class="form-label">angle de rotation</label>
<formulaire>
<type d'entrée="plage" classe="form-range w-75" id="thetaRange" min="-180" max="180" valeur="0"
oninput="this.form.thetaInput.value=this.value" />
<type d'entrée="numéro" id="thetaInput" min="-180" max="180" valeur="0"
oninput="this.form.thetaRange.value=this.value" />
</form></pre>
<pre class="brush:php;toolbar:false;">Javascript
fonction rotationPersonne() {
const personne = document.getElementById("personne");
var angle = document.getElementById("thetaRange");
person.style.transform = "rotation (angle deg)"
}</pre></p>
L'extrait de code que vous avez fourni est presque correct, mais il y a quelques problèmes dans la dernière ligne du code JavaScript. Voici la version corrigée et son explication :
Explication :
1.
rotatePerson
函数使用getElementById
选择了具有 ID 为 "person" 的元素,并将其赋值给变量person
.2. Ensuite, il obtient la valeur de l'angle de l'élément avec l'ID "thetaRange" en utilisant l'attribut
getElementById
和访问value
. Cette valeur représente l'angle actuellement sélectionné sur le curseur.3. Finalement, le code sera
person
元素的style.transform
属性设置为rotate(" + angle + "deg)
。这将动态地将旋转应用于person
元素,使用从滑块获取的度数值angle
.En appelant la fonction
rotatePerson
lorsque la valeur du curseur change, l'élément de caractère sera pivoté selon l'angle sélectionné.