Bonjour,

Je voudrais créer une intro à mon site internet.

Un simple carré avec un texte de bienvenu, en fond mon site mais flouté.

Un simple clique sur la page et on accède au reste du contenu.

J'avais vu des trucs similaire sur d'autre site internet mais je ne comprends pas le fonctionnement et quand je cherche une solution sur le web (Qwant et Youtube), je ne trouve pas de solution.

Je suppose qu'il faut maitriser le java pour un truc pareil et bien évidemment je n'en suis pas arrivé encore là...

Donc si on peut m'expliquer le fonctionnement de la solution avec ça serait cool !

Merci beaucoup pour votre aide !
Modérateur
Bonjour,

On peut le faire sans javascript (mais bon, c'est un poil "dirty").

L'idée, c'est de mettre une checkbox en début de page qu'on rend invisible, associée à un label transparent qu'on force à remplir toute la page. On affiche le message de bienvenue en dessous du label et on affiche le contenu de la page en dessous du message de bienvenue (initialement avec une certaine opacité).

Si l'utilisateur clique n'importe où, il clique en fait sur le label, ce qui a pour effet de cocher la checkbox. On peut alors dans le css utiliser le statut de la checkbox pour cacher le message de bienvenue, et faire apparaitre le contenu de la page normalement.

Par exemple :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Mon site</title>
<style>
.bienvenue
{
	position:absolute;
	z-index:1;
	top:0;
	left:0;
	bottom:0;
	right:0;
	color:#fff;
	background:#666;
	padding:1em;
	margin:auto;
	width:50%;
	height:5em;
}
#immoral
{
	position:absolute;
	visibility:hidden;
}
#immoral+label
{
	position:absolute;
	z-index:2;
	display:block;
	top:0;
	left:0;
	bottom:0;
	right:0;
}
#immoral:checked+label,
#immoral:checked~.bienvenue
{
	display: none;
}
main
{
	opacity:0.2;
}
#immoral:checked~main
{
	opacity:1;
}
</style>
</head>
<body>
<input id="immoral" type="checkbox" title="Cacher le message de bienvenue">
<label for="immoral"></label>
<div class="bienvenue">Message de bienvenue</div>
<main>
<h1>Mon site</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.</p>
</main>
</body>
</html>

On notera que certains navigateurs (par exemple firefox) conservent en mémoire le fait qu'on a coché une checkbox, ce qui fait que si on fait un rafraîchissement simple de la page, on ne verra pas le message de bienvenue (par contre, on le verra bien au premier affichage de la page, ou si on efface le cache, ou si on rafraîchit la page en maintenant la touche "majuscule" enfoncée). C'est anecdotique.

Après, on pourrait aussi utiliser javascript (et non pas java). Pas vraiment mieux !

Amicalement,
Modifié par parsimonhi (12 Aug 2020 - 08:20)
Modérateur
Bonjour,

Petite amélioration pour rendre service à ceux qui utilisent la navigation clavier : on peut remplacer

#immoral
{
	position:absolute;
	visibility:hidden;
}

par

#immoral
{
	position:absolute;
	opacity:0;
}
#immoral:checked
{
	visibility:hidden;
}

Alors un utilisateur pourra faire disparaitre le message de bienvenue via le clavier en faisant une série de "tab" puis en appuyant sur la barre d'espace une fois que le focus sera sur la checkbox.

Amicalement,
Bonjour !

Merci beaucoup pour ton aide.

Gros problème, ça ne marche pas. Quand je clique, le carré de bienvenu reste et le fond n'est plus flou et dès que je veux cliquer sur un lien, le fond redevient flou et m'empêche de cliquer sur le lien...

edit Non, c'est bon, javais juste remplacer une "," par ";"
Modifié par MaxCSD (16 Aug 2020 - 01:36)