DrFreez
@DrFreez

CSS background linear-gradient fixed сильно грузит CPU при прокрутке, как пофиксить?

Сейчас для фона использую такой код.

html {
	background: rgba(73,155,234,1);
	background: -moz-linear-gradient(-45deg, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
	background: -webkit-gradient(left top, right bottom, color-stop(0%, rgba(73,155,234,1)), color-stop(100%, rgba(32,124,229,1)));
	background: -webkit-linear-gradient(-45deg, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
	background: -o-linear-gradient(-45deg, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
	background: -ms-linear-gradient(-45deg, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
	background: linear-gradient(135deg, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#499bea', endColorstr='#207ce5', GradientType=1 );
	
	-webkit-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
	-moz-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
	box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
	min-height: 100%;
	background-attachment: fixed;
}
  • Вопрос задан
  • 3117 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
По сути никак, разве что отказаться от всего-этого. Комбинация box-shadow + градиенты + background-attachment: fixed по идее всегда будет тормозить ибо вызывает перерисовку всей страницы на каждый чих.
Ответ написан
Комментировать
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Ну, у меня к вам есть несколько предложений.

Первое - у вас все цвета не имеют прозрачности, зачем вы тогда используете rgba, а не hex? (#000000 - пример.)
Второе - не уверен, что это поможет, но я бы сделал див на фоне, растянул его по высоте и ширине, и его бы залил этим стилем.
Третий - крайний вариант - сделать такую картинку градиентную и растянуть её через background-size: contain (либо cover) - и проверить нагрузку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы