@danyfir

Как сделать смену placeholder через n секунд?

Есть input с id "vvod"
Нужно чтобы каждые 3 секунды placeholder менялся с "Пожалуйста, введите" на "фамилию имя"
  • Вопрос задан
  • 196 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Возможные значения плейсхолдера, с какой задержкой и кому их надо назначать:

const placeholders = [ 'hello, world!!', 'fuck the world', 'fuck everything' ];
const delay = 200;
const input = document.querySelector('input');

Назначаем:

function interval(arr, delay, callback) {
  let i = -1;

  return arr.length
    ? setInterval(() => callback(arr[i = -~i % arr.length]), delay)
    : null;
}


const intervalId = interval(placeholders, delay, n => input.placeholder = n);
// хотим остановить, делаем так: clearInterval(intervalId);

или

function interval(arr, delay, callback) {
  let timeoutId = null;

  arr.length && (function step(i) {
    timeoutId = setTimeout(() => {
      callback(arr[i]);
      step((i + 1) % arr.length);
    }, delay);
  })(0);

  return () => clearTimeout(timeoutId);
}


const stop = interval(
  placeholders,
  delay,
  Element.prototype.setAttribute.bind(input, 'placeholder')
);
// хотим остановить, делаем так: stop();
Ответ написан
Комментировать
hzzzzl
@hzzzzl
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы