Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2016, 16:26
Аспирант
Отправить личное сообщение для katamason Посмотреть профиль Найти все сообщения от katamason
 
Регистрация: 18.06.2011
Сообщений: 75

Проблема со скролом и позиционированием
Здравствуйте, пытаюсь воссоздать технику работы меню, как на сайте citiлинк.ru , link латиницей, во избежании ссылки на этот форум, пытаюсь делать так, вывел событие сролла вниз и вверх, но пока вышло что то кривое при скроле от верха вниз
sdb.css('top', - scrolledFromtop + 'px')

Прошу помощи в том, что не могу придумать как отловить, т.е сделать возможность скролить в обратном направлении, т.е от низа к верху, целую ночь потратил на это, думаю тут дело в паре строк кода, буду благодарен за помощь

$.fn.sdboxScroll = function(options) {
    
       //Значения по умолчанию
       options = $.extend({ 
           
           lastScrollTop:0,
           lastsdb: $('.sdbox').outerHeight()
           }, options); 
    

       return this.each(function(){
           
          var $this = $(this);
          
          gsScr = function() {
          var sdb = $('.sdbox');
          var wh = $(window).outerHeight();
          var scrolledFromtop = $(window).scrollTop();
          var sdbh = sdb.outerHeight();
          var logh = $('.logo').outerHeight();  
          var mm = $('.main_menu').outerHeight();
          var fromTopPx = logh + mm - wh + 12 ; // distance to trigger
                 
           var st = $(this).scrollTop();  
           if (scrolledFromtop > options.lastScrollTop){
            if(!sdb.hasClass('unscr')) {
             sdb.height(sdbh + st)    
             sdb.css('top', - scrolledFromtop + 'px')
           } 
                     
        } else {
            // sdb.height(options.lastsdb);    
             sdb.css('top', + scrolledFromtop + 'px')
        }
          options.lastScrollTop = scrolledFromtop;
          
           if(scrolledFromtop >= fromTopPx  ){
         sdb.addClass('unscr');
         } else {
          sdb.removeClass('unscr'); 
        }
        
        $('.debug').text(sdb.css('top'))
                
            }
            
        $(window).on('scroll',function() {
               gsScr()
        }).resize(function() {
            gsScr()
        });
        $('document').on('load',function() {
               gsScr()
        });
          

           
       });
       
   }; 
})(jQuery);

Последний раз редактировалось katamason, 11.07.2016 в 09:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с скролом Justtie Opera, Safari и др. 0 29.09.2011 12:51
Проблема с relative и abolute z-index позиционированием strel (X)HTML/CSS 2 31.12.2009 13:25
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47