28172 sujets

CSS et mise en forme, CSS3

Bonjour,
J'ai une scrollbar horizontale qui s'affiche quelques millisecondes lorsque le loader se lance. Un overflow: hidden ne change rien, ni un max-width.
Supprimer le gif ne fait rien, réduire la taille du loader non plus.
Je suis bien incapable de résoudre cette énigme.
Je vous laisse les CSS :
#load{
    width:100%;
    height:100%;
    position:fixed;
    z-index:9999;
    background:url("imgs/LoaderCarre.gif") no-repeat center center white;
        animation: fadeout 5s;
    -moz-animation: fadeout 5s; /* Firefox */
    -webkit-animation: fadeout 5s; /* Safari et Chrome */
    -o-animation: fadeout 5s; /* Opera */
}
@keyframes fadeout {
    from {
        opacity:1;
    }
    to {
        opacity:0;
    }
}
@-moz-keyframes fadeout { /* sur Firefox */
    from {
        opacity:1;
    }
    to {
        opacity:0;
    }
}
@-webkit-keyframes fadeout { /* sur Safari et Chrome */
    from {
        opacity:1;
    }
    to {
        opacity:0;
    }
}
@-o-keyframes fadeout { /* sur Opera */
    from {
        opacity:1;
    }
    to {
        opacity:0;
    }
}

ainsi que le HTML placé avant le body et qui se résume à ça:
<div id="load"></div>
Quelque soit le loader (CSS différentes, JS), j'ai une barre de défilement horizontale.
Même en mettant la div du loader après le <body> Smiley bawling
J'ai un autre souci (dois-je lancer une nouvelle discussion ?).
Mon loader ne prend pas en compte la durée (2 secondes, 4, 8, 15 etc...). Tout se résume à environ 0.8 seconde.
Si vous pouviez m'aider Smiley sweatdrop
Merci pour votre aide,
LM
Modifié par el_debutanti (22 May 2022 - 14:29)
Bonjour,
chez moi, je ne vois pas de barre horizontale, mais il nous faudrait le reste du code.
Tu dois ajouter
animation-fill-mode: forwards;

dans le css, de façon à ce que l'image ne revienne pas après son effacement.
Je ne pense pas que les préfix sont encore de mise aujourd'hui pour animation.
https://caniuse.com/css-animation
keyframe est un peu moins supporté, 74,77%.
Et dans mon test, la durée correspond à ce qui est donné.
Attends, je relis ton post "le html placé avant le boddy" Smiley ohwell
Modifié par Bongota (22 May 2022 - 15:29)
Bonjour Bongota,
Merci pour ta réponse.
J'ai cru comprendre qu'on pouvait mettre le loader avant le body Smiley murf
J'ai toujours la scrollbar horizontale malgré
animation-fill-mode: forwards;

Je ne comprends pas. Comme pour la durée, je peux mettre 15 secondes, cela reste sur environ 0.8 secondes.
Que puis-je envoyer comme code ?
Encore merci,
ED
Je n'ai pas la scrollbar durant toute l'animation, uniquement au début... 0.3 secondes de durée peut-être !?
animation-fill-mode: forwards; n'est pas là pour corriger la durée d'animation.
Je vois qu'il y a une parenthèse pas fermée sur l'image "), je ne pense pas que le problème soit là, mais corrige ça.
Il faut donner tout le code html et le css mais surtout le html (à moins que le site ait 200 pages...)
Pour mon essai, j'ai recopié ton code et ajouté animation-fill-mode: forwards;, c'est tout. J'ai fermé la balise img.
white ajouté sur la balise img sert à quoi ? Je crois que c'est inutile d'ajouter une couleur pour les millisecondes d'avant l'apparition de l'image.
a écrit :
Je vois qu'il y a une parenthèse pas fermée sur l'image

Je ne vois pas où Smiley sweatdrop
Le sites fait bcp de pages (+ modales etc...), mais voici le début :
<body>
<div id="load"></div>
<div class="container-fluid p-0 m-0">

	<header id="header">

		<div id="bgfadewrap">
			<div id="bgfade1">
				<div>
					<h1>Texte</h1>
				</div>
			</div>
			<div id="bgfade2">
				<div>
				<h1>Texte</h1>
				</div>
			</div>
			<div id="bgfade3">
				<div>
					<h1>Texte</h1>
				</div>
			</div>
		</div>

		<div id="menutop" class="menu">
			<nav class="navbar navbar-expand-sm p-0 m-0" aria-label="navbar">
			<div class="container-fluid p-0 m-0 align-items-start">

				<a href="#" class="navbar-brand"><img src="./imgs/logo_cut.png" alt="logo" ></a>
                
				<button class="navbar-toggler navbar-dark m-2" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTop" aria-controls="navbarTop" aria-expanded="false" aria-label="Toggle navigation">
					<span class="navbar-toggler-icon"></span>
				</button>

				<div id="navbarTop" class="collapse navbar-collapse justify-content-end p-1 m-0">
					<ul class="nav navbar-nav px-3">
						<li class="nav-item">
							<a class="scrollTo" href="#section1">INTRO</a>
						</li>
						<li class="nav-item">
							<a class="scrollTo" href="#section2">SITES</a>
						</li>
						<li class="nav-item">
							<a class="scrollTo" href="#section3">STYLE</a>
						</li>
						<li class="nav-item">
							<a class="scrollTo" href="#section4">VIDEOS</a>
						</li>
						<li class="nav-item">
							<a class="scrollTo" href="#section5">PHOTOS</a>
						</li>
						<li class="nav-item">
							<a class="scrollTo" href="#section6">ME</a>
						</li>
					</ul>
				</div>

				</div>
			</nav>
		</div>

		<a id="chevron-top" class="chevron-next scrollTo" href="#section1"><i class="fa fa-chevron-down fa-2x"></i></a>
	</header>

Que désires-tu comme CSS ?
Merci Smiley cligne
Modifié par el_debutanti (22 May 2022 - 16:37)
J'ai rêvé ou quoi, la balise est bien fermée ! Mes excuses, j'ai mélangé plusieurs codes sur lesquels j'étais. En tous cas, ton loader fonctionne chez moi, avec ton code donné.
Et je ne vois pas ton problème, d'autres plus au fait que moi vont s'en occuper.
Je pense que cela peut venir d'une fenêtre modale. Effectivement, sur IPhone (pas sur ordinateur), ma modale apparaît quelque millisecondes. Cela pourrait expliquer la scrollbar horizontale (???). Pourquoi la modale apparaîtrait-elle ? Ma page a été validée par le validator de W3C Smiley hum Je ne sais pas si c'est cela, je réfléchis. SI je mets un overflow-x: hidden sur le body, je me retrouve avec DEUX scollbars verticales !
N'hésitez-pas à me demander mon code.
Merci,
LM
Modifié par el_debutanti (22 May 2022 - 18:09)
J'ai trouvé la section responsable de l'overflow-x (uniquement quand il y a un loader).
Le HTML :
	<section id="section3" class="section">

		  <div class="parallax">
						<img src="imgs/bretelles@x2.jpg" alt="" data-parallax='{"y": 120}'/>
						<div id="parallax_bloc_deux"><h1>LDDC<br>
                        Style</h1><h2>Pose de modèles<br>
texte.<br>
<strong style="color:red;">J'ai dit pas copier !</strong></h2></div></div>	
		<div id="iiSlider">
			<img data-src="./imgs/2359@2x.jpg" data-src-2x="./imgs/2359.jpg" src="./imgs/2359@2x.jpg" alt="Slide 1" />            
			<img data-src="./imgs/2364@2x.jpg" data-src-2x="./imgs/2364jpg" src="./imgs/2364@2x.jpg" alt="Slide 2" />   
            <img data-src="./imgs/IMG_6150@2x.JPG" data-src-2x="./imgs/IMG_6150.JPG" src="./imgs/IMG_6150@2x.JPG" alt="Slide 3" />         
			<img data-src="./imgs/DSC_2813@2x.jpg" data-src-2x="./imgs/DSC_2813.jpg" src="./imgs/DSC_2813@2x.jpg" alt="Slide 4" />
			<img data-src="./imgs/DSCN0051@2x.jpg" data-src-2x="./imgs/DSCN0051.jpg" src="./imgs/DSCN0051@2x.jpg" alt="Slide 5" />
			<img data-src="./imgs/DSCN0077@2x.jpg" data-src-2x="./imgs/DSCN0077.jpg" src="./imgs/DSCN0077@2x.jpg" alt="Slide 6" />
			<img data-src="./imgs/DSCN0091@2x.jpg" data-src-2x="./imgs/DSCN0091.jpg" src="./imgs/DSCN0091@2x.jpg" alt="Slide 7" />
			<img data-src="./imgs/IMG_0729@2x.JPG" data-src-2x="./imgs/IMG_0729.JPG" src="./imgs/IMG_0729@2x.JPG" alt="Slide 8" />            
            <img data-src="./imgs/2359@2x.jpg" data-src-2x="./imgs/2359.jpg" src="./imgs/2359@2x.jpg" alt="Slide 9" />
            <img data-src="./imgs/IMG_0996@2x.JPG" data-src-2x="./imgs/IMG_0996.JPG" src="./imgs/IMG_0996@2x.JPG" alt="Slide 10" />
            <img data-src="./imgs/IMG_2293@2x.JPG" data-src-2x="./imgs/IMG_2293.JPG" src="./imgs/IMG_0730@2x.jpg" alt="Slide 11" />
            <img data-src="./imgs/IMG_2403@2x.JPG" data-src-2x="./imgs/IMG_2403.JPG" src="./imgs/IMG_2403@2x.JP" alt="Slide 12" />
            <img data-src="./imgs/IMG_2374@2x.JPG" data-src-2x="./imgs/2359.jpg" src="./imgs/IMG_2374@2x" alt="Slide 13" />
            <img data-src="./imgs/IMG_2406@2x.JPG" data-src-2x="./imgs/IMG_2406.JPG" src="./imgs/IMG_2406@2x.JPG" alt="Slide 14" />
            <img data-src="./imgs/IMG_2480@2x.jpg" data-src-2x="./imgs/IMG_2480.jpg" src="./imgs/IMG_2480@2x.jpg" alt="Slide 15" />
            <img data-src="./imgs/IMG_6051@2x.JPG" data-src-2x="./imgs/IMG_6051.JPG" src="./imgs/IMG_6051@2x.JPG" alt="Slide 16" />
            <img data-src="./imgs/IMG_6056@2x.JPG" data-src-2x="./imgs/IMG_6056.JPG" src="./imgs/IMG_6056@2x.JPG" alt="Slide 17" />
            <img data-src="./imgs/IMG_6059@2x.JPG" data-src-2x="./imgs/IMG_6059.JPG" src="./imgs/IMG_6059@2x.JPG" alt="Slide 18" />
			<img data-src="./imgs/IMG_6060@2x.JPG" data-src-2x="./imgs/IMG_6060.JPG" src="./imgs/IMG_6060@2x.JPG" alt="Slide 19" />
			<img data-src="./imgs/IMG_6073@2x.JPG" data-src-2x="./imgs/IMG_6073.JPG" src="./imgs/IMG_6073@2x.JPG" alt="Slide 20" />
			<img data-src="./imgs/2359@2x.jpg" data-src-2x="./imgs/2359.jpg" src="./imgs/2359@2x.jpg" alt="Slide 21" />
			<img data-src="./imgs/IMG_6096@2x.jpg" data-src-2x="./imgs/IMG_6096.jpg" src="./imgs/IMG_6096@2x.jpg" alt="Slide 22" />
			<img data-src="./imgs/IMG_6138@2x.JPG" data-src-2x="./imgs/IMG_6138.JPG" src="./imgs/IMG_6138@2x.JPG" alt="Slide 23" />
             <img data-src="./imgs/IMG_0730@2x.jpg" data-src-2x="./imgs/IMG_0730.jpg" src="./imgs/IMG_0730@2x.jpg" alt="Slide24" />
		</div>

		<iframe class="video-iframe" src="https://www.youtube.com/embed/rZMCB33hJw0?&amp;=1&amp;loop=1&amp;playlist=rZMCB33hJw0" title="YouTube video player" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" width="100%" height="100%"></iframe>

		<a class="chevron-next scrollTo" href="#section4"><i class="fa fa-chevron-down fa-2x"></i></a>

	</section>

et touts les CSS:
/*
 * Ideal Image Slider v1.5.1
 *
 * By Gilbert Pellegrom
 *  http://gilbert.pellegrom.me
 
 *
 * Copyright (C) 2014 Dev7studios
 *  https://raw.githubusercontent.com/gilbitron/Ideal-Image-Slider/master/LICENSE
 
 */

.ideal-image-slider {
	position: relative;
	overflow: hidden;
}
.iis-slide {
	display: block;
	bottom: 0;
	text-decoration: none;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: cover;
	text-indent: -9999px;
}

/* Slide effect */
.iis-effect-slide .iis-slide {
	opacity: 0;
	-webkit-transition-property: -webkit-transform;
	   -moz-transition-property: -moz-transform;
		 -o-transition-property: -o-transform;
			transition-property: transform;
	-webkit-transition-timing-function: ease-out;
	   -moz-transition-timing-function: ease-out;
		 -o-transition-timing-function: ease-out;
			transition-timing-function: ease-out;
	-webkit-transform: translateX(0%);
		-ms-transform: translateX(0%);
			transform: translateX(0%);
}
.iis-effect-slide .iis-current-slide {
	opacity: 1;
	z-index: 1;
}
.iis-effect-slide .iis-previous-slide {
	-webkit-transform: translateX(-100%);
		-ms-transform: translateX(-100%);
			transform: translateX(-100%);
}
.iis-effect-slide .iis-next-slide {
	-webkit-transform: translateX(100%);
		-ms-transform: translateX(100%);
			transform: translateX(100%);
}
.iis-effect-slide.iis-direction-next .iis-previous-slide,
.iis-effect-slide.iis-direction-previous .iis-next-slide { opacity: 1; }

/* Touch styles */
.iis-touch-enabled .iis-slide { z-index: 1; }
.iis-touch-enabled .iis-current-slide { z-index: 2; }
.iis-touch-enabled.iis-is-touching .iis-previous-slide,
.iis-touch-enabled.iis-is-touching .iis-next-slide { opacity: 1; }

/* Fade effect */
.iis-effect-fade .iis-slide {
	-webkit-transition-property: opacity;
	   -moz-transition-property: opacity;
		 -o-transition-property: opacity;
			transition-property: opacity;
	-webkit-transition-timing-function: ease-in;
	   -moz-transition-timing-function: ease-in;
		 -o-transition-timing-function: ease-in;
			transition-timing-function: ease-in;
	opacity: 0;
}
.iis-effect-fade .iis-current-slide {
	opacity: 1;
	z-index: 1;
}


D'avance MERCI ! Smiley cligne
#iiSlider {
	position: relative;
	max-width: 1000px;
	max-height: 100vh;
	margin: 5vh auto;
	font-size:1em;
}
J'ai trouvé :
<strong style="color:red;">J'ai dit pas copier !</strong></h2></div></div>

si je supprime un </div> je n'ai plus d'overflow-x.
PAR CONTRE, tout mon site (validé par le W3C) est foutu en l'air. Tout se tenait.
Hellllppppppp !
Je me suis focalisé sur le loader, puis sur le HTML.
Un overflow: hidden sur la div concernée à suffit à résoudre le problème.
Merci Bogonta Smiley smile
Je lance une nouvelle discussion Smiley murf