событие должно происходить во временном интервале, а не при нажатии - PullRequest
1 голос
/ 09 июля 2020

Уважаемые! Приведенная ниже функция срабатывает, когда я нажимаю кнопку, мне нужно, чтобы это происходило каждые 5 секунд, я использую приведенную ниже, но она не работает:

var angle = 0;
function galleryspin(sign) { 
  spinner = document.querySelector("#spinner");
  if (!sign) { 
    angle = angle + 45; 
  } else {
    angle = angle - 45; 
  }

  spinner.setAttribute("style",'-webkit-transform: rotateY("+ angle +"deg); -moz-transform: rotateY("+ angle +"deg); transform: rotateY("+ angle +"deg);');
}

setInterval(galleryspin('-'),500);  

Ответы [ 4 ]

2 голосов
/ 09 июля 2020

Замените setInterval (galleryspin ('-'), 500); следующим

setInterval(()=>galleryspin('-'),500);  
1 голос
/ 09 июля 2020

setInterval () не может иметь параметр функции с параметром.

setInterval(galleryspin('-'), 500);

Решением этого является вызов вашей функции в анонимной функции

setInterval(function() {galleryspin('-')}, 500);
0 голосов
/ 09 июля 2020

Вот некоторые вещи, которые могут привести к сбою этой программы:

  • Вы вызываете функцию один раз; синтаксис setInterval неверен. Вы не должны вызывать функцию, используя круглые скобки, просто укажите на нее, используя имя. Использование круглых скобок вызывает его один раз в начале, а затем никогда снова.
  • Если вы удалите круглые скобки, вы не сможете вводить аргументы. Чтобы решить эту проблему, установите для аргумента по умолчанию значение «-». Вы также можете использовать анонимную функцию.
0 голосов
/ 09 июля 2020

Вы не можете вызвать функцию внутри setInterval. Однако вы можете использовать анонимную функцию или передать любое количество аргументов после задержки

setInterval(galleryspin, 500,'-');

щелкните для получения дополнительной информации https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

...