1
votes

événement se produisant à intervalle de temps et non au clic

Chers, La fonction ci-dessous se produit lorsque je clique sur un bouton, je dois y arriver toutes les 5 secondes, j'utilise ce qui suit mais cela ne fonctionne pas:

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);  


1 commentaires

Avec quel langage de programmation travaillez-vous?


4 Réponses :


2
votes

Remplacez setInterval (galleryspin ('-'), 500); par le

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

suivant


0 commentaires

1
votes

setInterval () ne peut pas avoir de paramètre de fonction avec un paramètre.

setInterval(function() {galleryspin('-')}, 500);

Une solution pour cela est d'appeler votre fonction dans une fonction anonyme

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


0 commentaires

0
votes

Vous ne pouvez pas appeler la fonction dans setInterval. Cependant, vous pouvez utiliser la fonction anonyme ou vous pouvez passer n'importe quel nombre d'arguments après le délai

setInterval(galleryspin, 500,'-');

cliquez pour plus de détails https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

p>


0 commentaires

0
votes

Voici quelques éléments qui pourraient faire échouer ce programme:

  • Vous appelez la fonction une fois; la syntaxe setInterval est incorrecte. Vous ne devez pas appeler la fonction en utilisant des parenthèses, pointez-la simplement avec le nom. L'utilisation de parenthèses l'appelle une fois au début, puis plus jamais.
  • Si vous supprimez les parenthèses, vous ne pouvez pas saisir d'arguments. Pour résoudre ce problème, définissez l'argument par défaut sur «-». Vous pouvez également utiliser une fonction anonyme.

0 commentaires