Ввод текстовых полей, не анимируется (материал Дизайн) - PullRequest
0 голосов
/ 19 октября 2018

У меня есть настройка MDC, но мое текстовое поле не анимируется.

https://imgur.com/a/1h27vhD Эта ссылка показывает состояние, в котором она должна быть, и состояние, в котором находится мое поле.

Первое изображение с моего сайта, где вы можете увидетьпри переходе в активное состояние метка не анимируется в верхней строке, как нижнее изображение.Нижнее изображение прямо со страницы демонстрации Google Material Design.

<link rel="stylesheet" href="https://unpkg.com/material-components-web/dist/material-components-web.min.css">
<script src="https://unpkg.com/material-components-web/dist/material-components-web.min.js"></script>

<div class="mdc-text-field mdc-text-field--outlined">
  <input type="text" id="tf-outlined" class="mdc-text-field__input">
  <label for="tf-outlined" class="mdc-floating-label">Your Name</label>
  <div class="mdc-notched-outline">
    <svg>
                                  <path class="mdc-notched-outline__path"/>
                                </svg>
  </div>
  <div class="mdc-notched-outline__idle"></div>
</div>

Что я делаю не так?

Я заранее говорю спасибо.

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

используйте приведенный ниже фрагмент кода.также используйте mdc.autoInit();

mdc.autoInit();
        
   <link rel="stylesheet" href="https://unpkg.com/material-components-web/dist/material-components-web.min.css">

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
          
          
<body>   
     
     <div class="mdc-text-field mdc-text-field--outlined  mdc-text-field--with-trailing-icon" data-mdc-auto-init="MDCTextField">
      <i class="material-icons mdc-text-field__icon">delete</i>
      <input type="text" id="my-input" class="mdc-text-field__input">
      <label for="my-input" class="mdc-floating-label">Standard</label>
      <div class="mdc-notched-outline">
        <svg>
          <path class="mdc-notched-outline__path"/>
        </svg>
      </div>
      <div class="mdc-notched-outline__idle"></div>
    </div>


   <script src="https://unpkg.com/material-components-web/dist/material-components-web.min.js"></script>
           
</body>
0 голосов
/ 10 апреля 2019

У меня также была эта проблема раньше, вам просто нужно добавить следующую строку в ваш файл Javascript:

mdc.textField.MDCTextField.attachTo(document.querySelector('.mdc-text-field'));

Этот код Javascript связывает эффект метки анимации CSS с вашим div .mdc-text-field, и это в следующем порядке:

<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">Label</label>
  <div class="mdc-line-ripple"></div>
</div>

Вот почему вы не можете правильно видеть анимацию надписи в вашем компоненте.Я думаю, что документация MDC хороша, но плохо конкретизирована.

Если проблемы не исчезнут, скажите мне, и я проверю ваш вопрос как можно скорее, привет!

Редактировать: Я забыл сказать;чтобы получить все текстовые поля на вашем сайте, вы должны использовать:

const edtTexts = [].map.call(document.querySelectorAll('.mdc-text-field'), function(el) {
  return new mdc.textField.MDCTextField(el);
});

Таким образом, вы получите массив с каждым div с class = "mdc-text-field" document.querySelector вы получите первый найденный объект.

0 голосов
/ 19 октября 2018

Это возможное решение:

  1. Вы избавляетесь от <label></label>.

  2. Вы добавляете атрибут placeholder="Your Name" кВаш <input> тег

  3. Вы скрываете заполнитель в фокусе с помощью css

HTML:

<input type="text" id="tf-outlined" class="mdc-text-field__input" placeholder="Your Name">

CSS:

.mdc-text-field__input:focus::placeholder {
  visibility: hidden;
}

SNIPPET:

.mdc-text-field__input:focus::placeholder {
  visibility: hidden;
}
<link rel="stylesheet" href="https://unpkg.com/material-components-web/dist/material-components-web.min.css">
<script src="https://unpkg.com/material-components-web/dist/material-components-web.min.js"></script>

<div class="mdc-text-field mdc-text-field--outlined">
  <input type="text" id="tf-outlined" class="mdc-text-field__input" placeholder="Your Name">
  <div class="mdc-notched-outline">
    <svg>
                                  <path class="mdc-notched-outline__path"/>
                                </svg>
  </div>
  <div class="mdc-notched-outline__idle"></div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...