Подробное описание и демонстрацией работы эффекта наведения под номером №136 для бибилиотеки Bootstrap. Html и CSS код для реализации hover effect как на изображении.
<div class="container"> <div class="row"> <div class="col-md-4 col-sm-6"> <div class="box"> <img src="https://fokit.ru/demo/images/hover-effect/hover-effect-style-136/img-1.jpg" alt=""/> <div class="box-content"> <h3 class="title">Williamson</h3> <span class="post">Web Developer</span> <ul class="icon"> <li><a href="#" class="fa fa-search"></a></li> <li><a href="#" class="fa fa-link"></a></li> </ul> </div> </div> </div> <div class="col-md-4 col-sm-6"> <div class="box"> <img src="https://fokit.ru/demo/images/hover-effect/hover-effect-style-136/img-2.jpg" alt=""/> <div class="box-content"> <h3 class="title">Kristiana</h3> <span class="post">Web Designer</span> <ul class="icon"> <li><a href="#" class="fa fa-search"></a></li> <li><a href="#" class="fa fa-link"></a></li> </ul> </div> </div> </div> </div> </div>css разметка для реализации данного эффекта
.box{ text-align: center; background: #000; color: #fff; overflow: hidden; box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); position: relative; } .box:before{ content: ""; width: 100%; height: 100%; background: #83437d; opacity: 0.5; position: absolute; top: 100%; left: 0; z-index: 1; transition: all 0.35s ease-in 0.3s; } .box:hover:before{ top: 0; transition: all 0.35s ease-out 0s; } .box:after{ content: ""; position: absolute; bottom: 100%; left: 50%; border-width: 200px 200px 0 200px; border-style: solid; border-color: #83437d transparent transparent transparent; opacity: 0.9; transform: translateX(-50%); transition: all 0.35s ease-out 0s; } .box:hover:after{ bottom: 25%; transition: all 0.35s ease-in 0.2s; } .box img{ width: 100%; height: auto; } .box:hover img{ opacity: 0.5; } .box .box-content{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; } .box .title{ display: inline-block; width: 100%; padding: 0 30px; margin: 0; font-weight: 300; text-transform: uppercase; position: absolute; top: 45%; left: 0; opacity: 0; transition: all 0.35s ease 0.5s; } .box:hover .title{ transform: translate(0, -50%); } .box .post{ width: 100%; font-size: 15px; text-transform: capitalize; position: absolute; top: 57%; left: 0; opacity: 0; transition: all 0.35s ease 0.5s; } .box:hover .post{ transform: translate(0, -50%); } .box .icon{ width: 100%; padding: 0; margin: 0; list-style: none; position: absolute; bottom: 5px; left: 0; opacity: 0; transition: all 0.35s ease 0.5s; } .box .icon li{ display: inline-block; } .box .icon li a{ display: inline-block; width: 40px; height: 40px; line-height: 40px; padding: 0 5px; font-size: 20px; color: #fff; opacity: 0.7; transition: all 0.35s ease 0.5s; } .box .icon li a:hover{ opacity: 1; transition: all 0.35s ease; } .box:hover .title, .box:hover .post, .box:hover .icon{ opacity: 1; } @media only screen and (max-width:990px){ .box{ margin-bottom: 20px; } } @media only screen and (max-width:767px){ .box:after{ border-width: 500px 500px 0 500px; } }