JSFiddle - React, Tailwind, and code Playground
HTML
<section class="block-about">
<div class="block-about__wrapper">
<div class="element__wrapper">
<button class="block-about__btn about-btn__active"></button>
<div class="block-about__content about-active">
<h3 class="block-about__content_header">What Out Client Say</h3>
<p class="block-about__content_descr">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel tempora vero, atque id omnis expedita.</p>
<hr>
<span class="block-about__content_name">Kevin Samsung</span>
<span class="block-about__content_works">CEO/Task</span>
</div>
</div>
<div class="element__wrapper">
<button class="block-about__btn"></button>
<div class="block-about__content">
<h3 class="block-about__content_header">Said For Us</h3>
<p class="block-about__content_descr">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Explicabo quod impedit, ab, vero reiciendis, iusto quis, culpa quidem sunt quas minus dignissimos ducimus sint nemo!.</p>
<hr>
<span class="block-about__content_name">Kevin Samsung</span>
<span class="block-about__content_works">CEO/Task</span>
</div>
</div>
<div class="element__wrapper">
<button class="block-about__btn"></button>
<div class="block-about__content">
<h3 class="block-about__content_header">What Out Client Say</h3>
<p class="block-about__content_descr">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel tempora vero, atque id omnis expedita.</p>
<hr>
<span class="block-about__content_name">Kevin Samsung</span>
<span class="block-about__content_works">CEO/Task</span>
</div>
</div>
<div class="element__wrapper">
<button class="block-about__btn"></button>
<div class="block-about__content">
<h3 class="block-about__content_header">What Out Client Say</h3>
<p class="block-about__content_descr">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel tempora vero, atque id omnis expedita.</p>
<hr>
<span...
CSS
@import "bourbon";
@import "../../prework/vars";
@import "../../prework/base";
.block-about {
height: 100%;
width: 100%;
background-color: #3b3342;
position: relative;
}
.block-about__wrapper {
width: 60%;
margin: 0 auto;
position: relative;
padding-top: 7%;
}
.block-about__btn {
max-width: 20%;
width: 8%;
max-height: 80%;
height: 10%;
background-color: #fff;
border: none;
cursor: pointer;
padding-bottom: 10%;
opacity: .2;
transition: opacity .5s ease;
}
.block-about__btn:hover {
opacity: 1;
}
.block-about__content {
display: none;
}
@keyframes mymove {
0% {top: -1000px;}
100% { top: 45%;}
}
.about-active {
display: block;
position: absolute;
top: 25%;
right: 0;
width: 70%;
float: right;
animation: mymove .5s ease-in-out;
}
.about-btn__active {
opacity: 1;
background-image: url('../img/about_one.png');
background-repeat: no-repeat;
max-width: 20%;
width: 8%;
max-height: 30%;
height: 10%;
background-color: transparent;
border: none;
cursor: pointer;
padding-bottom: 10%;
}
Babel + JSX
"use strict";
const items = document.getElementsByClassName('block-about__btn');
[].forEach.call(items, function(item) {
item.addEventListener('click', function() {
[].forEach.call(items, function(el) {
var active = el == item ? 'add' : 'remove';
el.classList[active]("about-btn__active");
el.nextElementSibling.classList[active]('about-active');
});
});
});