javascript - 在继续之前等待使用 js 设置 CSS 属性。

标签 javascript css

考虑这个 JS 函数:

function myFunc() {

  const date = new Date();
  const secs = date.getSeconds();
  const secDeg = 360*(secs / 60)+ 90 ;

  hand.style.transitionDuration = '0s';
  hand.style.transform = `rotate(${secDeg}deg)`;
  hand.style.transitionDuration = '2s';
}

我希望旋转以 0 秒的过渡完成。但是,它使用值“2s”,即使它是在旋转之后设置的。这是因为 rotate() 完成时间太长了吗?我该如何处理?我想我可以使用 transitionend 事件监听器来完成,但是有没有更简洁的方法?

最佳答案

它被称为快速,所以它会在那个时候覆盖计时器 ;) 所以是的,最好使用延迟或事件结束。

(如果你有 jquery)

function myFunc() {

  const date = new Date();
  const secs = date.getSeconds();
  const secDeg = 360*(secs / 60)+ 90 ;

  hand.style.transitionDuration = '0s';
  hand.style.transform = `rotate(${secDeg}deg)`;
  $(hand).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",
              function(event) {
                  hand.style.transitionDuration = '2s';
  });
}

关于javascript - 在继续之前等待使用 js 设置 CSS 属性。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41127290/

相关文章:

html - 如何在彼此的顶部垂直显示行内 block ?

javascript - 如何仅使用 onload 函数而不是 javascript 删除 iframe 中的类

javascript - ReactVR如何正确设置指针(raycaster)

javascript - 除了简单的 for 循环之外,还有更干净或更聪明的方法来输出数组的内容吗?

CSS - 移动水平列表中的元素

html - 菜单布局中背景颜色的样式在哪里?

javascript - 在 "round" Canvas 上画线

javascript - jQuery 插件实例变量

javascript - 显示对话框(通过警报或 sweetalert)滚动到页面顶部

javascript - 基于 w3 学校教程的响应式导航栏无法使用 javascript 打开