2014-12-23 4 views
2

Я пытался сделать заголовок, который будет уменьшаться по количеству, которое вы прокрутили, а затем остановитесь и определите точку. Существует также логотип, который будет двигаться вверх в пределах этого

Единственная проблема: $(window).scrollTop(); не срабатывает достаточно быстро. поэтому, если вы прокрутите слишком быстро, логотип будет за пределами заголовка, или заголовок может быть слишком большим.

я не могу придумать лучшего способа сделать это .. какой-либо помощи или идеи будут оценены

вот мой код

var widgets = { 
    header: function() { 
     var $header = $('.header'); 
     var $logo = $('.header__title'); 
     var $headerHeight = $header.height(); 
     $(window).on('scroll resize', function(event) { 
      var windowWidth = window.innerWidth; 
      var windowScrollTop = $(window).scrollTop(); 


      if(windowScrollTop < 100) { 
       $logo.css('margin-top','-'+(windowScrollTop)+'px'); 
      } 

      if (windowScrollTop < 230) { 
       $header.css('height',($headerHeight - windowScrollTop)+'px'); 
      } 
     }); 
    } 
} 

$(document).ready(function() { 
    widgets.header(); 
    ..... 

пример здесь http://jsfiddle.net/7wp51gu6/

+0

извините положение заголовка исправить .. им просто сделать jsfiddle, чтобы помочь более – Richy

+0

да скрипки будет много помогаем по этой проблеме. Постарайтесь убедиться, что там есть хорошая часть html. –

+0

теперь добавлено http://jsfiddle.net/7wp51gu6/ – Richy

ответ

2

Вы можете установить конечное состояние на else два условий

if (windowScrollTop < 100) { 
    $logo.css('margin-top', '-' + (windowScrollTop) + 'px'); 
} else { 
    $logo.css('margin-top', '-100px'); 
} 

if (windowScrollTop < 230) { 
    $header.css('height', ($headerHeight - windowScrollTop) + 'px'); 
} else { 
    $header.css('height', ($headerHeight - 230) + 'px'); 
} 

Демы в http://jsfiddle.net/gaby/7wp51gu6/7/

+0

Спасибо, что вам понравилось, и все равно получил гладкую анимацию – Richy

1

Я сделал некоторые быстро изменения и нужна быстрая обратная связь от вас, но проверьте эту скрипку ...

http://jsfiddle.net/7wp51gu6/6/

Я обновил скрипт здесь только:

if (windowScrollTop >= 100) { 
    $logo.css('margin-top', '-100px'); 
}else{ 
    $logo.css('margin-top',0); 
} 

Это в основном устанавливает его к вершине, где вы хотите его, когда оно больше или равно 100. Также устанавливает его обратно, когда вы находитесь на вершине, которая где вы этого хотите.

Также внесено изменение в некоторый css, который подталкивает ваш основной контент вниз 312px. Проверьте это также. Это не на 100% необходимо просто предположить, исходя из вашего текущего дисплея, что вам понадобится в будущем.

+0

Спасибо, что я вижу, что вы сделали .. У меня было это дополнение, установленное в моем коде mian, просто забыл добавить его к этому .. спасибо за помощь – Richy

+0

Не больно вообще ты меня не выбрал @ Ричи ... Я понимаю ... #nothurtatall #cryingalittle ...: P –

+1

#HUG. Единственная причина в том, что я ленился, и это разработало коробку. Вы оба сделали то же самое, позор я не могу выбрать два – Richy

Смежные вопросы