maler1988
@maler1988
Web-программист (1С Bitrix)

Как настроить такую прокрутку на сайте?

Как настроить такую прокрутку колонок на сайте joxi.ru/Dr8Kk5Pc4l1eWA ? Тип независимая от соседних колонок прокуртка. Доскролилась колонка до конца своего содержимого и дальше не едет.
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 2
maler1988
@maler1988 Автор вопроса
Web-программист (1С Bitrix)
В общем сделал вот так:
//Фиксация первой колонки
    function firstColFixed(firstColLedge){
    	//menu_col_inner_wrap - обёртка содержимого внутри первой колонки
    	if(firstColLedge > 0){
    		if($(this).scrollTop() >= firstColLedge && !$('.menu_col_inner_wrap').hasClass('left_col_fixed')){
    			$('.menu_col_inner_wrap').addClass('left_col_fixed');
    			$('.menu_col_inner_wrap').css('top', '-'+firstColLedge+'px');
    		} 
    		
    		if($(this).scrollTop() < firstColLedge && $('.menu_col_inner_wrap').hasClass('left_col_fixed')){
    			$('.menu_col_inner_wrap').removeClass('left_col_fixed');
    			$('.menu_col_inner_wrap').css('top', 'none');
    		}
    	} 
    }
    
    //Исходные данные
    var firstColHeight = $('.menu_col').height();
    var windowHeight = $(window).height();
    var firstColLedge = firstColHeight - windowHeight;
    
    $(window).resize(function(){
        firstColHeight = $('.menu_col').height();
        windowHeight = $(window).height();
        firstColLedge = firstColHeight - windowHeight;
    });
    
    //Запуск функции при загрузки страницы
    firstColFixed(firstColLedge);
    
    //Запуск функции при скролле
    $(window).scroll(function () {
    	firstColFixed(firstColLedge);
    });


тут menu_col - это первая колонка которую надо фиксировать, а menu_col_inner_wrap - это обёртка внутренностей этой колонки, чтобы не нужно было мудрить с отступами, когда на menu_col_inner_wrap вешается класс с position:fixed и она выпадает из потока.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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