Доступ к элементам «вычисленный стиль» в директиве

Я сделал директиву для этого загрузчика. Я хочу сделать что-то вроде ниже, но все стили не определены. Есть ли способ получить доступ к «вычисленным стилям» элемента в директиве?

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')
    }
  }
}

так что добавляйте window.getComputedStyle(el) ?? или что-то, что vue использует для глобального окна

epascarello 13.02.2019 14:00
element.style возвращает стили, определенные внутри атрибута встроенного стиля, для вычисляемых стилей вам необходимо использовать window.getComputedStyle
AvcS 13.02.2019 14:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
114
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Vue.js не предоставляет для этого ничего из коробки. Для этого вы должны использовать ядро ​​JavaScript API:

componentUpdated(el, binding) {
    const styleObj = window.getComputedStyle(el);
    // Other code...
}

Если вам действительно нужно это в директивном стиле, это не решение, но вы всегда можете динамически привязать свойство v, в данном случае это класс CSS.

См.: Привязки классов и стилей.

Есть ли причина, по которой это не хорошо? Мне нужно проверить текущий стиль, прежде чем я смогу добавить класс. Также это загрузчик, который стал общим для всех элементов.

Dejan.S 13.02.2019 15:07

Нет, ни за что, просто директивный стиль изначально не реализован во Vue. Вы всегда можете выбрать собственный маршрут в любое время.

Luis Maldonado 13.02.2019 15:12

Хорошо, да, я думал об этом, и у меня действительно не было другого способа сделать это. Мне нужно проверить, какой у него стиль, а затем действовать в соответствии с ним. Это также должно быть общее решение практически для всех компонентов/элементов. Спасибо за ответ Луис :)

Dejan.S 13.02.2019 15:50

В любой момент. Рад помочь в любом случае.

Luis Maldonado 13.02.2019 16:08

Другие вопросы по теме