Bonjour,
J'aimerais avoir de l'aide, j'ai intégré une timeline animée sur mon site, mais le contenant du texte reste fixe. J'aimerais pouvoir avoir le même rendu de la div contenttl lorsqu'il est fixe mais j'aimerais qu'il soit visible que lorsque nous arrivons à la timeline, et pas avant. Savez-vous comment faire ?
Vous comprendrez sûrement mieux en regardant mes codes. Désolé si j'explique mal, je suis débutante.
En enlevant sur la div contenttl la position fixed le rendu n'est pas bon, et je n'ai pas trouvé comment faire le même rendu avec une position relative.
Merci d'avance pour votre aide!
Voici mon code HTML
Voici mon code CSS
J'aimerais avoir de l'aide, j'ai intégré une timeline animée sur mon site, mais le contenant du texte reste fixe. J'aimerais pouvoir avoir le même rendu de la div contenttl lorsqu'il est fixe mais j'aimerais qu'il soit visible que lorsque nous arrivons à la timeline, et pas avant. Savez-vous comment faire ?
Vous comprendrez sûrement mieux en regardant mes codes. Désolé si j'explique mal, je suis débutante.
En enlevant sur la div contenttl la position fixed le rendu n'est pas bon, et je n'ai pas trouvé comment faire le même rendu avec une position relative.
Merci d'avance pour votre aide!
Voici mon code HTML
<div class="contenttlb">
<h2>XXX</h2>
<ul id="timeline">
<li class="entry">
<input checked="checked" class="radio" id="trigger5" name="trigger" type="radio">
<label for="trigger5">
<span>
X1
</span>
</label>
<span class="date">xx à xx</span>
<span class="circle"></span>
<div class="contenttl">
<h3>X1</h3>
<p>
xxxxx<br>
</p>
</div>
</li>
<li class="entry">
<input checked="checked" class="radio" id="trigger4" name="trigger" type="radio">
<label for="trigger4">
<span>
X2
</span>
</label>
<span class="date">xx à xx</span>
<span class="circle"></span>
<div class="contenttl">
<h3>X2</h3>
<p>
xxxxx<br>
</p>
</div>
</li>
<li class="entry">
<input checked="checked" class="radio" id="trigger3" name="trigger" type="radio">
<label for="trigger3">
<span>
X3
</span>
</label>
<span class="date">xx à xx</span>
<span class="circle"></span>
<div class="contenttl">
<h3>X3</h3>
<p>
xxxxx<br>
</p>
</div>
</li>
<li class="entry">
<input checked="checked" class="radio" id="trigger2" name="trigger" type="radio">
<label for="trigger2">
<span>
X4
</span>
</label>
<span class="date">xx à xx</span>
<span class="circle"></span>
<div class="contenttl">
<h3>X4</h3>
<p>
xxxxx<br>
</p>
</div>
</li>
</ul>
</div>
Voici mon code CSS
@charset "UTF-8";
html {
height: 100%;
}
body {
width: 100%;
font-family: montserrat !important;
margin:0;
padding:0;
height:100%;
background:#F5C6E7 !important;
}
h2 {
color: #343434;
text-align: center;
}
p, li{
padding: 20px;
word-break: break-word;
text-align: justify;
color: #343434;
}
.contenttlb {
width:auto;
height:auto;
margin:10px;
vertical-align: middle;
margin-right: auto;
margin-left: auto;
color: #eee9dc;
background:#FFFFFF;
border-radius:20px;
overflow: hidden;
position: relative;
}
#timeline {
margin-top: 480px !important;
padding-bottom: 20px;
border-top: 5px solid #343434;
list-style: none;
display: flex;
}
#timeline li {
padding-top: 30px;
position: relative;
flex: 1;
transition: all 0.4s ease-in-out;
}
#timeline li:hover {
padding-bottom: 80px;
flex: 2;
}
#timeline li:hover label {
opacity: 1;
transform: translateY(10px);
}
label {
max-width: 200px;
margin: 0 auto;
padding: 5px 10px;
background: #F5C6E7;
border-radius: 20px;
position: absolute;
left: 0;
right: 0;
cursor: pointer;
opacity: 0;
transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
}
label:before, label:after {
content: "";
width: 0;
height: 0;
border: solid transparent;
position: absolute;
bottom: 100%;
pointer-events: none;
}
label:before {
border-bottom-color: #F5C6E7;
border-width: 15px;
left: 52%;
margin-left: -15px;
}
label:after {
border-bottom-color: #F5C6E7;
border-width: 12px;
left: 52%;
margin-left: -12px;
}
label span {
text-align: center;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: block;
}
.date {
width: 100%;
padding-bottom: 30px;
text-align: center;
position: absolute;
top: -60px;
display: block;
}
.circle {
width: 10px;
height: 10px;
margin-left: -5px;
background: #343434;
border: 5px solid #343434;
border-radius: 50%;
position: absolute;
top: -14px;
left: 50%;
}
.contenttl {
width: 50%;
height: auto;
margin-right:auto;
margin-left:auto;
border: 2px solid #FFFFFF;
border-radius: 20px;
position: fixed;
top: 200px;
left: 0;
right: 0;
z-index: 100;
background: #F5C6E7;
transform: perspective(1000px) rotateY(20deg);
animation: switching_back 0.8s;
}
.contenttl h3, .contenttl p {
margin: 0 20px 10px;
text-align: justify;
opacity: 0;
}
.contenttl h3 {
margin-top: 20px;
}
.radio {
display: none;
}
.radio:checked + label {
opacity: 1;
transform: translateY(10px);
transition: opacity 0.4s ease-in-out 0.25s, transform 0.3s ease-in-out 0.25s;
}
.radio:checked ~ .circle {
background: #F5C6E7;
}
.radio:checked ~ .contenttl {
z-index: 999;
transform: perspective(1000px) rotateY(15deg) translate(40px, 25px);
animation: switching 1s ease;
}
.radio:checked ~ .contenttl h3, .radio:checked ~ .contenttl p {
opacity: 1;
transition: opacity 0.4s ease-in-out 0.4s;
}
@keyframes switching {
0% {
transform: perspective(1000px) rotateY(20deg);
}
40% {
transform: perspective(1000px) rotateY(15deg) translate(100px, 35px);
}
100% {
transform: perspective(1000px) rotateY(15deg) translate(40px, 25px);
}
}
@keyframes switching_back {
0% {
transform: perspective(1000px) rotateY(15deg) translate(40px, 25px);
z-index: 200;
}
40% {
transform: perspective(1000px) rotateY(15deg) translate(0px, 0px) scale(1.08);
}
100% {
transform: perspective(1000px) rotateY(20deg);
z-index: 100;
}
}