Фиксируемый по горизонтали заголовок страницы

Встречали ли вы проблему, когда адаптивная верстка (бутстрапа) не может быть применима ко всему сайту. Предположим, у вас на странице присутствует большая таблица, которую неудобно будет сворачивать в ключ-значение, как описано здесь.
И что же делать?
У вас широкое полотно, но шапка страницы сжимается по размеру окна и остается в начале.
Растянуть шапку — не дело, ведь чтобы теперь добраться до правого угла — нам нужно пользоваться скроллингом, а таблица пользователю вовсе не нужна.
Но выход есть
Нам понадобится немного магии jquery и css. Делаем фиксируемые по горизонтали элементы. Достаточно простой скрипт. Одно лишь ограничение — элементы подверженные скрипту должны быть относительным позиционированием — position: relative, у них также должен отсутствовать сдвиг с левой стороны left. Именно эти параметры нужны нам для формирования красивого сдвига.
Если у вас уже заданы позиционирование и положение слева — вы можете обрамить элемент данным новым слоем. Если можете эти параметры задать — допишите соответствующий класс для существующих элементов.
Назовем класс .scrollfix
И заставим все элементы с этим классом следовать положению окна, но только по горизонтали

$( window ).on( "scroll", function() {
 $('.scrollfix').css({left: $(window).scrollLeft()});
});
Вот и все. Немного магии и немного любви. Наверное есть смысл написать выражение без использования jquery, но вам обязательно придется задуматься о кроссбраузерности.
Да и не забудьте добавить css
.scrollfix{
 position: relative;
 left: 0;
}
Еще ограничение — элемент должен занимать весь экран по ширине, чтобы не загораживать элементы справа. Решить проблему нам поможет адаптивная верстка bootstrap

@media (min-width: 768px){
 .scrollfix-xs{
  position: initial;
 }
}
@media (min-width: 992px){
 .scrollfix-sm{
  position: initial;
 }
}
@media (min-width: 992px){
 .scrollfix-sm{
  position: initial;
 }
}
@media (min-width: 1200px) {
 .scrollfix-md{
  position: initial;
 }
}
Теперь добавляя дополнительный признак — элемент будет позиционироваться начиная с определенного сжатия экрана.
В качестве примера можете использовать данный сайт kosmom.ru. Я специально создал очень широкий элемент на странице, чтобы вы могли сами увидеть что все успешно работает.

100% Complete (success)

Спасибо за внимание

Больше материалов выкладываю на своем Дзен канале

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 839
  • Комментариев: 0
  • Создан: 25.11.2014 13:43

Комментарии (0)

Ваши предложения и пожелания пишите на pro@kosmom.ru

Теги

ajax axios backup bootstrap core framework eloquent excel home project html ios javascript keep-alive kpi laravel legacy mvp orm php rip scroll solid timestamp undefined vue vuetify watch безопасность биометрический паспорт ваша любаша для путешествий загран на 10 лет загран паспорт загранпаспорт нового образца зимние книги как заполнить анкеты кеширование книги на новый год логирование мцф недвижимость новогодние книги образец заполнения антеты паспорт для путешествий паспорт нового поколения печать продукт проектирование прокси разработка ремонт ремонт в апартаментах ремонт нежилого помещения самокат сдача сколько стоил ремонт апартаментов спорт стандарты таблица финансы хостинг цена ремонта что почитать зимой юзабилити

Случайный пост

09.09.2020 13:49
Не шутите с html