Diagonal Featured Items
Diagonal row of featured items
by kthornbloom
HTML
<div class="element-features">
<div class="element-features-wrap">
<div class="feature">
<div class="feature-img" style="background-image:url(https://picsum.photos/200)"></div>
<div class="feature-title">
TITLE GOES HERE
</div>
<div class="feature-text">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi labore excepturi mollitia ratione corporis, nesciunt fugiat nostrum optio natus
</div>
</div>
<div class="feature">
<div class="feature-img" style="background-image:url(https://picsum.photos/g/200)"></div>
<div class="feature-title">
TITLE GOES HERE
</div>
<div class="feature-text">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi labore excepturi mollitia ratione corporis, nesciunt fugiat nostrum optio natus praesentium sequi dicta quisquam ab, perferendis voluptates! Omnis molestiae voluptatibus alias.
</div>
</div>
<div class="feature">
<div class="feature-img" style="background-image:url(https://picsum.photos/200?random)"></div>
<div class="feature-title">
TITLE GOES HERE
</div>
<div class="feature-text">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi labore excepturi mollitia ratione corporis, nesciunt fugiat nostrum optio natus praesentium sequi dicta quisquam ab, perferendis voluptates! Omnis molestiae voluptatibus alias.
</div>
</div>
<div class="feature">
<div class="feature-img" style="background-image:url(https://picsum.photos/200)"></div>
<div class="feature-title">
TITLE GOES HERE
</div>
<div class="feature-text">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi labore excepturi...
SCSS
body {
font-family: sans-serif;
}
@media screen and (min-width:720px){
.element-features {
position: relative;
}
.element-features-wrap {
position: relative;
display: flex;
width: 100%;
overflow: hidden;
}
.feature {
position: relative;
height: 400px;
flex-grow: 1;
flex-basis: 15%;
display: flex;
overflow:hidden;
flex-direction: column;
justify-content: center;
transform: skewX(-10deg);
box-sizing: border-box;
transition: .7s;
}
.feature:first-of-type {
transform: none;
margin-right: -40px;
padding-right: 50px;
flex-basis: 20%;
.feature-title {
transform: skewX(0deg);
}
}
.feature:last-of-type {
padding-left: 50px;
transform: none;
flex-basis: 20%;
.feature-title {
transform: skewX(0deg);
}
}
.feature:nth-last-child(3) {
z-index: 2;
}
.feature:nth-last-child(2) {
z-index: 1;
margin-right: -40px;
}
.feature-img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-size: cover;
filter: brightness(.6);
transition: .2s;
}
.feature-title {
position: relative;
text-align: center;
color: #fff;
padding: 15px;
transform: skewX(10deg);
}
.feature-text {
display: none;
flex-grow:1;
overflow:auto;
}
.feature:hover:not(.feature-active) {
cursor: pointer;
.feature-img {
filter: brightness(.9);
}
}
.feature-close {
position: absolute;
top: 0;
left: 0;
padding: 15px;
display: none;
color: #fff;
z-index: 10;
}
.element-features-active {
.feature {
flex-basis: 20px;
flex-grow: 0;
padding: 0;
margin: 0;
transform: skewX(0deg);
}
.feature:not(.feature-active){
.feature-title {
opacity:0;
}
}
.feature-close {
display: block;
}
}
.feature-active {
width: 100% !important;
flex-basis: 100% !important;
.feature-text {
...
JavaScript
function closeFeatures() {
$('.feature-active').removeClass('feature-active');
$('.element-features-active').removeClass('element-features-active');
}
$('.feature').on('click', function() {
closeFeatures();
$(this).addClass('feature-active');
$(this).parent().parent().addClass('element-features-active');
})
$('.feature-close').on('click', function() {
closeFeatures();
});