0

我为这个加载程序做了一个指令。我想做类似下面的事情,但所有样式都未定义。有没有办法访问指令中元素的“计算样式”?

export const ElementLoader = {
  componentUpdated(el, binding) {
    if (binding.value.isLoading) {
      if (el.style.position !== '' || el.style.position !== 'static') {
        el.style.position = 'relative'
      }

      el.classList.add('is-loading')
    } else {
      el.classList.remove('is-loading')
    }
  }
}
4

2 回答 2

1

Vue.js 没有为此提供任何开箱即用的东西。您必须为此使用核心JavaScript API

componentUpdated(el, binding) {
    const styleObj = window.getComputedStyle(el);
    // Other code...
}
于 2019-02-13T13:15:35.793 回答
0

如果你真的需要它的指令风格,这不是解决方案,但你总是可以动态地 v-bind 一个属性,在这种情况下是一个 CSS 类。

请参阅:类和样式绑定

于 2019-02-13T14:01:10.140 回答