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>
您提供的代码片段几乎正确,但是在JavaScript代码的最后一行中存在一些问题。以下是已更正的版本及其解释:
解释:
1.
rotatePerson
函数使用getElementById
选择了具有 ID 为 "person" 的元素,并将其赋值给变量person
。2. 接下来,它使用
getElementById
和访问value
属性从具有 ID 为 "thetaRange" 的元素中获取角度的值。该值表示滑块上当前选择的角度。3. 最后,代码将
person
元素的style.transform
属性设置为rotate(" + angle + "deg)
。这将动态地将旋转应用于person
元素,使用从滑块获取的度数值angle
。通过在滑块值更改时调用
rotatePerson
函数,人物元素将根据所选的角度进行旋转。