• Теория
  • Теория

Привязываем ширину полоски к длине пароля

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

Длина введённого значения хранится в его свойстве length. Мы работали с этим свойством в одной из прошлых частей.

let input = document.querySelector('input');

console.log(input.value); // Выведет: Кекс
console.log(input.value.length); // Выведет: 4

С каждым введённым символом полоска должна увеличиваться на 10% от ширины родителя.

Длина пароляШирина полоски
110%
220%
330%

Выходит, чтобы получить ширину полоски, нам нужно умножить длину пароля на число 10. Умножение в JavaScript обозначается звёздочкой:

console.log(3 * 10); // Выведет: 30

Используем умножение, чтобы задать полоске ширину. И не забудем добавить с помощью конкатенации единицы измерения — проценты:

securityBar.style.width = password.value.length * 10 + '%';

Представим, что пользователь ввёл пароль длиной 4 символа:

securityBar.style.width = 4 * 10 + '%'; // Результат: '40%'

Чтобы ширина полоски менялась одновременно с длиной пароля, мы должны получать длину при каждом изменении в поле ввода. Используем для этого обработчик событий oninput. Добавим его полю ввода пароля и свяжем ширину полоски и длину введённого значения. После этого убедимся, что полоска растёт вместе с длиной пароля.

Что случится, если ширина полоски окажется больше 100%? Всё зависит от того, какое значение указано в CSS свойстве overflow родительского элемента. Мы использовали значение hidden, поэтому «лишняя» часть полоски просто не будет отображаться.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Динамические стили элементов» тренажёра «Знакомство с JavaScript» можно после регистрации и оформления подписки.