Paneles sesgados sensibles con CSS puro/CSS3

Tiempo de ejecución: 30 minutos. Empezar

Autor: hexagoncircle
Views Total: 2,743
Sitio oficial: Ir a la web
Actualizado: May 21, 2016
Licencia: MIT

Vista prévia

Paneles sesgados sensibles con CSS puro/CSS3

Descripción

Paneles adaptables, de pantalla completa y sesgados con un efecto de expansión en el desplazamiento del ratón. Fuertemente basado en el modelo de Flexbox CSS3.

Funcionamiento

Construya la estructura HTML para los paneles sesgados.

<main>

<section>


<article>



Panel 1


</article>

</section>

<section>


<article>



Panel 2


</article>

</section>

<section>


<article>



Panel 3


</article>

</section>

<section>


<article>



Panel 4


</article>

</section>

<section>


<article>



Panel 5


</article>

</section>
</main>

Los principales estilos CSS/CSS3.

main {

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;

width: 100%;

-webkit-transform: translate3d(0, 0, 0);

transform: translate3d(0, 0, 0);
}
@media (min-width: 630px) {

main {

-webkit-box-orient: horizontal;

-webkit-box-direction: normal;

-webkit-flex-direction: row;

-ms-flex-direction: row;

flex-direction: row;

width: 130%;

margin-left: -15%;
}
}

main section:not(:first-child):not(:last-child):hover {

-webkit-box-flex: 2;

-webkit-flex: 2;

-ms-flex: 2;

flex: 2;
}

main section:not(:first-child):not(:last-child):hover:after { opacity: .8; }

main section:not(:first-child):not(:last-child):hover article {

opacity: 1;

-webkit-transform: translateY(0);

transform: translateY(0);

-webkit-transition: opacity .2s .2s, -webkit-transform .2s .2s;

transition: opacity .2s .2s, -webkit-transform .2s .2s;

transition: opacity .2s .2s, transform .2s .2s;

transition: opacity .2s .2s, transform .2s .2s, -webkit-transform .2s .2s;
}
@media (min-width: 630px) {

main section:not(:first-child):not(:last-child):hover article {

-webkit-transform: translateY(0) skewX(-15deg);

transform: translateY(0) skewX(-15deg);
}
}

section {

-webkit-box-flex: 1;

-webkit-flex: 1;

-ms-flex: 1;

flex: 1;

position: relative;

width: 100%;

min-height: 20vh;

overflow: hidden;

z-index: 1;

-webkit-transition: flex-grow .2s, opacity .2s, -webkit-box-flex .2s, -webkit-flex-grow .2s;

transition: flex-grow .2s, opacity .2s, -webkit-box-flex .2s, -webkit-flex-grow .2s;

transition: flex-grow .2s, opacity .2s;

transition: flex-grow .2s, opacity .2s, -webkit-box-flex .2s, -webkit-flex-grow .2s, -ms-flex-positive .2s;
}

section:before {

content: "";

position: absolute;

width: 100%;

height: 100%;

background-position: center;

background-size: cover;

-webkit-transition: width .2s, -webkit-transform .2s;

transition: width .2s, -webkit-transform .2s;

transition: transform .2s, width .2s;

transition: transform .2s, width .2s, -webkit-transform .2s;
}

section:after {

content: "";

position: absolute;

top: 0;

left: 0;

width: 100%;

height: 100%;

background-color: black;

opacity: 0;

-webkit-transition: opacity .2s;

transition: opacity .2s;
}
@media (min-width: 630px) {

section {

width: 20%;

height: 100vh;

margin-right: -1px;

-webkit-transform: skewX(15deg) translateZ(0);

transform: skewX(15deg) translateZ(0);
}

section:before {

left: -100%;

width: 400%;

-webkit-transform: skewX(-15deg);

transform: skewX(-15deg);
}
}

Estilo de los elementos secundarios en el CSS de la siguiente manera:

section:nth-child(1):before {

background-color: #e60000;

background-image: url(1.jpg);
}

section:first-child:before, section:last-child:before { background-color: #660000; }

section:first-child:after, section:last-child:after { opacity: .5; }

section:first-child article, section:last-child article { display: none; }

section:nth-child(2):before {

background-color: #cc0000;

background-image: url(2.jpg);
}

section:first-child:before, section:last-child:before { background-color: #660000; }

section:first-child:after, section:last-child:after { opacity: .5; }

section:first-child article, section:last-child article { display: none; }

section:nth-child(3):before {

background-color: #b30000;

background-image: url(3.jpg);
}

section:first-child:before, section:last-child:before { background-color: #660000; }

section:first-child:after, section:last-child:after { opacity: .5; }

section:first-child article, section:last-child article { display: none; }

section:nth-child(4):before {

background-color: #990000;

background-image: url(4.jpg);
}

section:first-child:before, section:last-child:before { background-color: #660000; }

section:first-child:after, section:last-child:after { opacity: .5; }

section:first-child article, section:last-child article { display: none; }

section:nth-child(5):before {

background-color: maroon;

background-image: url(5.jpg);
}

section:first-child:before, section:last-child:before { background-color: #660000; }

section:first-child:after, section:last-child:after { opacity: .5; }

section:first-child article, section:last-child article { display: none; }

article {

position: relative;

padding: 24px;

width: 100%;

height: 100%;

text-align: center;

color: white;

z-index: 1;

-webkit-transition: opacity .2s, -webkit-transform .2s;

transition: opacity .2s, -webkit-transform .2s;

transition: opacity .2s, transform .2s;

transition: opacity .2s, transform .2s, -webkit-transform .2s;
}

@media (min-width: 630px) {

article {

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-align: center;

-webkit-align-items: center;

-ms-flex-align: center;

align-items: center;

-webkit-box-pack: center;

-webkit-justify-content: center;

-ms-flex-pack: center;

justify-content: center;

position: absolute;

top: 0;

right: 0;

left: 0;

margin: auto;

opacity: 0;

-webkit-transform: translateY(24px) skewX(-15deg);

transform: translateY(24px) skewX(-15deg);
}
}

h2 {

font-size: 32px;

margin-bottom: 12px;
}

Te puede interesar: