Puro CSS una página efecto de desplazamiento
| Autor: | hrtzt |
|---|---|
| Views Total: | 4,711 |
| Sitio oficial: | Ir a la web |
| Actualizado: | August 12, 2016 |
| Licencia: | MIT |
Vista prévia
Descripción
Una solución HTML/CSS pura para crear un efecto de desplazamiento de una página de pantalla completa y fluida para la aplicación Web de una sola página. Basado en CSS3 y radio & Hacks de etiquetas. Permite al usuario navegar entre páginas con navegación lateral y/o teclas de flecha.
Funcionamiento
Inserte el contenido seccionado en los elementos ' Label ' y luego envuélvalo junto con la navegación basada en ' radio Input ' en un contenedor llamado ' container ' como este:
<div class="container"> <form> <input type="radio" id="Slide1" name="slider" title="Home" checked="checked"/> <input type="radio" id="Slide2" name="slider" title="Section 2"/> <input type="radio" id="Slide3" name="slider" title="Section 3"/> <input type="radio" id="Slide4" name="slider" title="Section 4"/> <input type="radio" id="Slide5" name="slider" title="Section 5"/> <div class="labels"> <label for="Slide1" id="Slide1" class="Slide"> <div class="content"> <h1><strong>Pure CSS</strong> one page vertical navigation</h1> </div> </label> <label for="Slide2" id="Slide2" class="Slide"> <div class="content"> <h2>Section 2</h2> </div> </label> <label for="Slide3" id="Slide3" class="Slide"> <div class="content"> <h2>Section 3</h2> </div> </label> <label for="Slide4" id="Slide4" class="Slide"> <div class="content"> <h2>Section 4</h2> </div> </label> </div> </form> </div>
Las reglas principales de CSS/CSS3:
.container {
width: 100vw;
height: 100vh;
background: deeppink;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.container form {
box-sizing: border-box;
text-align: center;
padding: 22px;
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
position: fixed;
height: 100vh;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.container form input {
height: 0;
margin: 12px 0;
z-index: 1;
}
.container form input:checked {
outline: 0;
border: 0;
}
.container form input:before {
content: "";
position: absolute;
display: inline-block;
width: 8px;
height: 8px;
border: 1px solid rgba(255, 255, 255, 0.81);
border-radius: 11px;
cursor: pointer;
-webkit-transition: all 0.25s linear;
transition: all 0.25s linear;
}
.container form input:checked:before { background-color: white; }
.container form input:after {
content: "" attr(title) "";
position: relative;
left: 30px;
opacity: 0;
color: white;
font-size: 9px;
display: block;
min-width: 80px;
-webkit-transition: all 0.25s linear;
transition: all 0.25s linear;
}
.container form input:checked:after {
opacity: 1;
left: 20px;
}
.container form input:hover:after:not(label) {
opacity: 1;
}
.container form input:nth-of-type(1):checked ~ .labels label {
-webkit-transform: translateY(-0%);
transform: translateY(-0%);
}
.container form input:nth-of-type(2):checked ~ .labels label {
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
}
.container form input:nth-of-type(3):checked ~ .labels label {
-webkit-transform: translateY(-200%);
transform: translateY(-200%);
}
.container form input:nth-of-type(4):checked ~ .labels label {
-webkit-transform: translateY(-300%);
transform: translateY(-300%);
}
.container form input:nth-of-type(5):checked ~ .labels label {
-webkit-transform: translateY(-400%);
transform: translateY(-400%);
}
.container form input:nth-of-type(6):checked ~ .labels label {
-webkit-transform: translateY(-500%);
transform: translateY(-500%);
}
.container form input:nth-of-type(7):checked ~ .labels label {
-webkit-transform: translateY(-600%);
transform: translateY(-600%);
}
.container form .labels {
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}
.container form .labels label {
min-width: 100vw;
min-height: 100vh;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
background-color: #2B2B38;
z-index: 0;
-webkit-transition: all 0.75s cubic-bezier(0.75, 0.25, 0, 1.05);
transition: all 0.75s cubic-bezier(0.75, 0.25, 0, 1.05);
}
.container form .labels label:nth-child(odd) {
background-color: #F5004F;
color: white !important;
}





