не передается переменная

267
22 июля 2017, 08:55
$(function(){
  var container = $('figure'),
    iframe = $('iframe'),
    $window = $(window),
    coord = container.offset().top + container.outerHeight(),
    scroll = $window.scrollTop();
  $window.on('scroll', function () {
    iframe.toggleClass('sticky', scroll > coord);
    iframe.toggleClass('sticky', $window.scrollTop() > coord);
  })  
})

почему то, что выделено жирным не работает, а то, что курсивом - работает?

Answer 1

На самом деле все работает.

Отличие заключается в том, что при событии scroll, меняется значение, которое возвращает $window.scrollTop(), а так как ты сохранил это значение вначале, в самом обработчике у тебя scroll > coord будет постоянно одно и то же.

Во втором варианте, при каждой прокрутке получается разное значение из $window.scrollTop(), поэтому результат проверки условия $window.scrollTop() > coord может отличаться, в зависимости от текущего положения.

READ ALSO
Как дать понять что все элементы страницы загрузились?

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

Есть страничка которая загружается и полностью рендерится за 1 секундуВ это время у меня идёт запрос к базе в получение JSON данных, которые...

261
Html5 тег video на мобильных

Html5 тег video на мобильных

Есть фон видео сделанный с помощью тега video с авто запускомКак можно не воспроизводить видео на мобильных? Так как скорость интернета может...

240
Как сделать так, чтобы комментарии не попадали в bubdle.js?

Как сделать так, чтобы комментарии не попадали в bubdle.js?

Как сделать так, чтобы комментарии не попадали в bubdlejs используя WebPack или его плагины?

194
Ngx paginator проблема с totalItems

Ngx paginator проблема с totalItems

В общем, поставил Ngx paginator

196