1
votes

Ajouter un bouton à un compte à rebours Javascript

Je suis incroyablement nouveau en Javascript et je ne le connais pas très bien. Cependant, j'ai réussi à créer un compte à rebours qui fonctionne à moitié comme je le souhaite. C'est assez simple, mais c'est essentiellement une minuterie qui compte à rebours jusqu'à une date spécifique, puis une fois qu'elle atteint la date et l'heure spécifiées, elle affiche ensuite le texte que je peux personnaliser. J'aimerais que ce code puisse afficher un bouton avec un lien hypertexte une fois que le compte à rebours atteint zéro. Voici le code que j'ai jusqu'à présent:

<p id="demo" class="countdown-live" style="text-align:center;"></p>
// Set the date we're counting down to
var countDownDate = new Date(Date.now() + 20000).getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = days + " days, " + hours + " hours, " +
    minutes + " minutes, & " + seconds + " seconds";

  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "We're Live on Facebook!";
  }
}, 1000);

Toute aide permettant d'afficher un bouton hypertexte au lieu du texte "Nous sommes en direct sur Facebook!" serait grandement apprécié.


1 commentaires

Alors changez la ligne qui affiche le texte. document.getElementById ("demo"). innerHTML = "Nous sommes en direct sur Facebook!"; Je ne vois aucune tentative de votre part pour résoudre ce problème.


6 Réponses :


5
votes

Dans la propriété innerHTML (), vous pouvez transmettre une balise HTML comme

<a href="...">
  <button> YOUR TEXT </button> 
</a>


2 commentaires

innerHTML n'est pas une fonction.


Exact, c'est une propriété. Ma faute ;)



3
votes

Ajoutez simplement le code HTML à la chaîne que vous définissez:

<p id="demo" class="countdown-live" style="text-align:center;"></p>
// Set the date we're counting down to
var countDownDate = new Date(Date.now() + 20000).getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = days + " days, " + hours + " hours, " +
    minutes + " minutes, & " + seconds + " seconds";

  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = '<a href="https://facebook.com">We\'re Live on Facebook!</a>';
  }
}, 1000);


1 commentaires

Cela a très bien fonctionné. Un peu en colère contre moi-même, c'était aussi simple que ça, haha. Merci!



1
votes

Vous pouvez simplement créer un élément de bouton HTML avec un lien vers la page que vous essayez de diriger. Assurez-vous de donner au bouton un ID de «démo» pour qu'il fonctionne avec votre code actuel

<button id="demo" onclick="window.location.href = 'https://www.facebook.com/';">We're live on Facebook!</button>


0 commentaires

0
votes

En html après p ajoutez un bouton et un dd une classe pour le masquer initialement

if (distance < 0) {
    clearInterval(x);
    document.getElementById("liveButton").classList.remove('hide')
    document.getElementById("demo").innerHTML = "We're Live on Facebook!";
  }

En css, ajoutez la classe hide code >

.hide{
 display:none;
}

Dans js, quand j'ai atteint 0, supprimez cette classe

<p id="demo" class="countdown-live" style="text-align:center;"></p>
<button id='liveButton' type='button' class='hide'>Your Text</button>


0 commentaires

1
votes

Vous devrez créer un bouton comme ceci:

document.getElementById("myButton").style.display = "inline";

Et vous pourrez ensuite l'afficher via JavaScript comme ceci:

<button id="myButton" style="display:none"><a href="example.com">Button Text</a></button>

p>


0 commentaires

1
votes

Vous pouvez essayer ceci:

document.getElementById("main").style.visibility = "hidden";

avec la propriété innerHTML, vous pouvez ajouter du HTML brut. Vous pouvez également ajouter une balise masquée, puis la rendre visible:

pour visible:

document.getElementById("yourID").style.visibility = "visible";

pour non visible:

document.getElementById("demo").innerHTML = "<a href='https://www.youUrl.com'>We're Live on Facebook!</a>";

J'espère que cela vous aidera.


0 commentaires