Веб-дизайн компонентов материалов в расширении Chrome - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть расширение Chrome, которое в настоящее время использует Material Design Components, Web .У меня нет проблем с использованием unminified CSS, однако JS не работает должным образом.

Если я использую исходный код , при фокусировке на текстовом поле должна быть анимацияпример показывает, но я не испытываю этого в своем расширении.

Я действительно надеюсь, что это не какое-то ограничение безопасности Chrome ... не имеет смыслачто их браузер не может обнаружить и поддерживать их собственную структуру.

popup.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Chrome Ext</title>
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css">
    <script src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script>
  </head>
  <body>
    <div class="mdc-text-field">
      <input type="text" id="my-text-field" class="mdc-text-field__input">
      <label class="mdc-floating-label" for="my-text-field">Hint text</label>
      <div class="mdc-line-ripple"></div>
    </div>
  </body>
</html>

Над текстом «Подсказка» должно появиться, какпример выше.

Примечание: у меня не было проблем с Material Design Lite, но, поскольку это больше не поддерживается, я решил перестроить с использованием современного фреймворка.

1 Ответ

0 голосов
/ 21 сентября 2018

MDC немного отличается от MDL тем, что зависящие от js функции требуют создания экземпляра компонента MDC.Это можно сделать разными способами, в зависимости от того, как вы включили MDC js в свой проект .В приведенном выше примере HTML вы, вероятно, могли бы добавить тег script с однострочником для создания экземпляра текстового поля MDC.Что-то вроде:

<script>
  mdc.textField.MDCTextField.attachTo(document.querySelector('.mdc-text-field'));
</script>

Вы также можете использовать mdc.autoInit() с data-mdc-auto-init разметкой для создания экземпляров компонентов MDC (подробнее см. Документы Auto Init ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...