suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Implementieren Sie die Drehung/Rotation von Objekten mithilfe von Formulareingaben und Schiebereglern

<p>Ich habe ein Objekt namens #person und muss es mithilfe eines Schiebereglers von -180 Grad auf 180 Grad drehen. Ich habe den Schieberegler mit dem Eingabefeld synchronisiert, um den aktuellen Winkelwert anzuzeigen, und versucht, eine Funktion zu schreiben, aber es hat nicht funktioniert. Ich versuche, style.transform zu verwenden. Da ich in meinem Projekt Bootstrap und jQueryUI verwendet habe, wäre es auch hilfreich, wenn ich diese beiden Frameworks anstelle von Standard-JavaScript verwenden könnte, um das Problem zu lösen. </p> <pre class="brush:php;toolbar:false;">HTML <label for="angleSlider" class="form-label">rotationswinkel</label> <Formular> "input type="range" id="-180" oninput="this.form.thetaInput.value=this.value" <input type="number" id="thetaInput" oninput="this.form.thetaRange.value=this.value" </form></pre> <pre class="brush:php;toolbar:false;">Javascript Funktion rotierenPerson() { const person = document.getElementById("person"); var angle = document.getElementById("thetaRange"); person.style.transform = "drehen (Winkelgrad)" }</pre></p>
P粉007288593P粉007288593467 Tage vor502

Antworte allen(1)Ich werde antworten

  • P粉882357979

    P粉8823579792023-08-17 14:01:06

    您提供的代码片段几乎正确,但是在JavaScript代码的最后一行中存在一些问题。以下是已更正的版本及其解释:

    function rotatePerson() {
        const person = document.getElementById("person");
        var angle = document.getElementById("thetaRange").value; // 获取角度的值
        person.style.transform = "rotate(" + angle + "deg)"; // 将角度变量连接到transform属性中
    }

    解释:

    1. rotatePerson 函数使用 getElementById 选择了具有 ID 为 "person" 的元素,并将其赋值给变量 person

    2. 接下来,它使用 getElementById 和访问 value 属性从具有 ID 为 "thetaRange" 的元素中获取角度的值。该值表示滑块上当前选择的角度。

    3. 最后,代码将 person 元素的 style.transform 属性设置为 rotate(" + angle + "deg)。这将动态地将旋转应用于 person 元素,使用从滑块获取的度数值 angle

    通过在滑块值更改时调用 rotatePerson 函数,人物元素将根据所选的角度进行旋转。

    Antwort
    0
  • StornierenAntwort