javascript中的旋转函数如何使用变量?

How to use a variable for the rotation function in javascript?

我正在尝试使用 transform:rotate() 每秒将元素旋转一定量,但我不知道如何使用变量而不是字符串进行旋转。

我尝试制作串联函数以及在旋转函数本身内部串联

        function runTime() {

            var d = new Date();
            var s = s+6
            var m = m+.1
            var h = h+.008333
            $("#seconds").css({'transform':'rotate('+s+'deg)'});
            $("#minutes").css({'transform':'rotate('+m+'deg)'});
            $("#hours").css({'transform':'rotate('+h+'deg)'});
            t=setTimeout(runTime,1000);

        }

我没有 jquery 来验证,但你的代码应该可以工作。

  • 确保您的 smh 变量是数字而不是字符串,否则添加 s+6 将连接起来添加.

  • 您可以使用 setInterval(runTime, 1000) 一次而不是每次迭代 setTimeout

  • 您可以使用字符串模板,例如`rotate(${h}deg` 使您的 css 属性更易于阅读。

const $ = document.querySelector.bind(document);

let runTime = () => {
  let d = new Date();
  let s = d.getSeconds() * 6;
  let m = d.getMinutes() * 6
  let h = d.getHours() * 30;
  $("#seconds").style.transform = `rotate(${s}deg)`;
  $("#minutes").style.transform = `rotate(${m}deg)`;
  $("#hours").style.transform = `rotate(${h}deg)`;
}

setInterval(runTime, 1000);
div {
  outline: 1px solid black;
  position: absolute;
}

#hours {
  width: 3px;
  height: 26px;
}

#minutes {
  width: 2px;
  height: 30px;
}

#seconds {
  width: 1px;
  height: 34px;
}
<div id="seconds"></div>
<div id="minutes"></div>
<div id="hours"></div>