@Ellerow

Как сделать элемент выходящим за все границы страницы, при этом фиксируемым и по центру?

Привет. Не могу понять как сделать, чтобы элемент выходил за все границы страницы, при этом был фиксируемым и при скроле с уменьшением своего размера находился всегда по центру. Первый элемент при скроле остаётся на своём месте, с ним всё просто - он фиксируется. Второй элемент должен при прокрутке масштабироваться до меньшего размера. У меня эти элементы - SVG изображения через тег img.
Уменьшение размеров при прокрутке я в принципе могу и сам сделать, но нужно чтобы элемент оставался по центру.

Красный - первый элемент
Зеленый - второй элемент.
Синий - полоса прокрутки.

5e77570ce5cc5886089036.png
После прокрутки:
5e7757b78c81f681642371.png
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
SeaInside
@SeaInside
15 лет пилю все эти штуки
Зафиксируйте 2ой элемент по центру. Например так:
.second {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}


На JS посмотрите размер блока и рассчитайте коэффициент (K), на сколько его нужно увеличить, чтобы он оказался больше размеров окна браузера. Примените коэффициент через transform: scale(K) - тем более у вас SVG, что масштабируется без потери качества.

На скролл повешайте событие, которое будет постепенно уменьшать коэффициент до единицы. Всё. :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Ellerow Автор вопроса
Ещё один вариант решения.
#second-wrapper {
  margin-left: 50%;
}

#second {
  position: fixed;
  width: 200vw;
  margin-left: -100%;
  top: -50%;
}


И менять размер width и margin left для изменения размера. Значение margin-left должно быть (не учитывая минус) в два раза меньше значения width.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы