Landing Pages : Coming Soon
Posté le 30 décembre 2018 dans la Catégorie Featured, Landing Pages
Pour annoncer l’ouverture d’un site web, ou bien une mise à jour majeure, ou bien encore un événement important, il est bien utile d’utiliser une page de type « Coming Soon ».
Le plus souvent, il est d’usage de mettre en place plusieurs éléments sur ce type de landing page : le logo de l’entreprise, des liens vers les réseaux sociaux, un compte à rebours menant à la date de l’ouverture. Plus rarement, on peut y trouver une vidéo en background, un formulaire d’inscription à la newsletter, ou un formulaire de contact.
Voyons ce que cela donne, dans le cas où on choisit d’y intégrer : le logo, les liens vers les réseaux sociaux, le formulaire pour la newsletter, et le compte à rebours.
Côté HTML, tout d’abord :
On commence par un div pour le logo, qui sera situé sur la gauche :
<div class="left-logo"> <div class="info-logo"> <a href="https://www.sebastienmerour.com/portfolio/"> <img src="../../images/coming-soon-logo.jpg" alt=""> </a> </div> </div>
Pour la partie de droite, on intègre également le logo, mais cette fois en petite taille. Et on y ajouter une liste de liens vers les réseaux sociaux du site :
<div class="form-row logo-social"> <div class="col-6"> <div class="right-logo"> <a href="https://www.sebastienmerour.com/portfolio/"> <div class="logo"><img src="../../images/sebastien-merour-logo-1.png"></div> </a> </div> </div> <div class="col-6"> <div class="social no-bg-icon"> <a href="#"><i class="fab fa-facebook-f"></i></a><a href="#"><i class="fab fa-twitter"></i></a><a href="#"><i class="fab fa-linkedin-in"></i></a> </div> </div> </div>
Par la suite, on ajoute un formulaire qui aura pour vocation d’inviter les visiteurs à s’abonner à la newsletter :
On termine la page HTML avec un div contenant le compte à rebours :<h3>Le site ouvrira très bientôt!</h3> <p>Pour être prévenu dès qu'il sera ouvert, renseignez votre adresse e-mail :</p> <form class="form-row"> <div class="col-md-8"> <input type="text" class="form-control" placeholder="Adresse E-Mail"> </div> <div class="col-md-4"> <button type="submit" class="btn btn-primary">Prevenez-moi</button> </div> </form>
<div class="time-counter form-row"> <div class="days count col"> <div class="num">15</div> <div class="label">Jours</div> </div> <div class="hours count col"> <div class="num">09</div> <div class="label">Heures</div> </div> <div class="minutes count col"> <div class="num">53</div> <div class="label">Min</div> </div> <div class="seconds count col"> <div class="num">39</div> <div class="label">Sec</div> </div> </div>Pour le CSS, on décide de créer un background sympa et très simple : l’objectif est de créer une ligne oblique qui va séparer le logo du site, de la section consacrée au formulaire et au compte à rebours. Pour cela, on utilise la fonction skewX() qui permet d’opérer une distorsion horizontale :
.form.custom-bg:before { position: absolute; content: &amp;quot;&amp;quot;; width: 100%; height: 100%; top: 0; left: 0; background-color: #432F75; -webkit-transform-origin: top center; -moz-transform-origin: top center; -ms-transform-origin: top center; transform-origin: top center; /* Pour mettre une ligne oblique entre les 2 couleurs de fond : */ -webkit-transform: skewX(-15deg) scaleX(0.8); -moz-transform: skewX(-15deg) scaleX(0.8); -ms-transform: skewX(-15deg) scaleX(0.8); transform: skewX(-15deg) scaleX(0.8); }
Enfin, on ajoute un fichier Javascript pour intégrer le compte à rebours en bas de page :
&amp;quot;use strict&amp;quot; $(window).on(&amp;quot;load&amp;quot;, function() { function countDown(){ var today = new Date(); var eventDate = new Date(&amp;quot;June 30,2020 00:00:00&amp;quot;); var currentTime = today.getTime(); var eventTime = eventDate.getTime(); var remTime = eventTime - currentTime; var sec = Math.floor(remTime/1000); var min = Math.floor(sec/60); var hrs = Math.floor(min/60); var days = Math.floor(hrs/24); hrs %= 24; min %= 60; sec %= 60; days = (days&amp;amp;amp;lt;10) ? &amp;quot;0&amp;quot;+days : days; hrs = (hrs&amp;amp;amp;lt;10) ? &amp;quot;0&amp;quot;+hrs : hrs; min = (min&amp;amp;amp;lt;10) ? &amp;quot;0&amp;quot;+min : min; sec = (sec&amp;amp;amp;lt;10) ? &amp;quot;0&amp;quot;+sec : sec; var elTimeCounter = $('.time-counter'); var elDays = $('.days', elTimeCounter); var elHours = $('.hours', elTimeCounter); var elMinutes = $('.minutes', elTimeCounter); var elSeconds = $('.seconds', elTimeCounter); $('.num', elDays).html(days); $('.num', elHours).html(hrs); $('.num', elMinutes).html(min); $('.num', elSeconds).html(sec); setTimeout(countDown, 1000); } countDown(); });