/ Дизайн / Блоки с эффектом наведения

Блоки с эффектом наведения

HIT

10.06.2019

1476

Несложное, но визуально интересное решение на чистом CSS: пункты-блоки с эффектом анимации.

Пример:

Верстка блоков:

<div class="service" id="service"><ul>
	
	<li><a href="/supply-of-goods-from-china/">
		<span class="service_icon"><i class="fas fa-box-open"></i></span>
		<span class="service_name">Поставка товаров из Китая</span>
	</a></li>
	
	<li><a href="/search-for-products-in-china/">
		<span class="service_icon"><i class="fas fa-search"></i></span>
		<span class="service_name">Поиск товаров в Китае</span>
	</a></li>
	
	<li><a href="/search-for-manufacturers-in-china/">
		<span class="service_icon"><i class="fas fa-industry"></i></span>
		<span class="service_name">Поиск производителей в Китае</span>
	</a></li>
	
	<li><a href="/logistics-shipments-from-china/">
		<span class="service_icon"><i class="fas fa-ship"></i></span>
		<span class="service_name">Логистика поставок из Китая</span>
	</a></li>
	
	<li><a href="/promotion/">
		<span class="service_icon"><i class="fas fa-gift"></i></span>
		<span class="service_name">Рекламно-сувенирная продукция</span>
	</a></li>
	
	<li><a href="/representation-in-china/">
		<span class="service_icon"><i class="far fa-comments"></i></span>
		<span class="service_name">Представление интересов в Китае</span>
	</a></li>	

</ul></div>

Стили:

.service {
	overflow: hidden;
	border-left: 1px solid #565655;
	border-bottom: 1px solid #565655;
}

.service > ul > li {
	float: left;
	width: 50%;
	list-style: none;
	height: 340px;
	background: #2D2926;
	border-top: 1px solid #565655;
	border-right: 1px solid #565655;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}

.service > ul > li > a {
	display: block;
	height: 100%;
	position: relative;
	overflow: hidden;
}

.service > ul > li > a:hover {
	background: #feea2f;
	
	-webkit-transition: background 0s linear 0.3s;
	transition: background 0s linear 0.3s;
}

.service > ul > li > a:before {
	position: absolute;
	left: 12.5%;
	top: 50%;
	width: 500px;
	height: 500px;
	margin: -250px 0px 0px -181px;
	border-radius: 50%;
	background: #feea2f;
	-ms-transform: scale(0);
	-webkit-transform: scale(0);
	transform: scale(0);
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
	content: '';
}

.service > ul > li > a:hover:before {
	-ms-transform: scale(4);
	-webkit-transform: scale(4);
	transform: scale(4);
}

.service_icon {
	display: block;
	position: absolute;
	left: 12.5%; top: 50%;
	width: 138px;
	height: 138px;
	line-height: 138px;
	margin-top: -7px;
	border-radius: 50%;
	background: #2d2a27;
	text-align: center;
	color: #2B2421;
	
	-ms-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.service_icon:before {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #feea2f;
    z-index: 0;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    content: '';
}

.service_icon i {
    position: absolute;
    line-height: 138px;
    font-size: 3rem;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    z-index: 0;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    content: '';
}

.service > ul > li > a:hover .service_icon i {background: #2d2a27; color: #feea2f;
}

.service > ul > li > a:hover .service_icon:before {
	-ms-transform: scale(0);
	-webkit-transform: scale(0);
	transform: scale(0);
}


.service_name {
	position: absolute;
	left: calc(20.8% + 138px); top: 50%;
	margin-top: 3px;
	color: #fff;
	font-size: 32px;
	text-transform: uppercase;
	padding-right: 30px;
	
	-ms-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.service > ul > li > a:hover .service_name {color: #111;}

Иконки svg

Если вместо шрифта FontAwesome использовать изображения svg, то нужно изменить два стиля:

.service_icon svg {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 80px;
    height: 80px;
    margin-left: -40px;
    margin-top: -40px;
    z-index: 0;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
}

.service > ul > li > a:hover .service_icon svg {fill: #feea2f;}

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Блоки с эффектом наведения
Поделиться в соц.сетях
Рекомендации для васПоделиться в соц.сетяхOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.