Jquery не рассчитывает правильную высоту браузера? - PullRequest
0 голосов
/ 07 ноября 2019

Я поставлен в тупик на этом. У меня есть эффект параллакса на моем сайте, который отлично работает, но он переходит на начальную прокрутку. Я предполагаю, что функция ниже не вычисляет правильную высоту моего окна просмотра, пока не начнется прокрутка ... Я оставляю эту функцию профессионалам на SO. Спасибо.

$.fn.is_on_screen = function(){    
var win = $(window);
var viewport = {
    top : win.scrollTop(),
    left : win.scrollLeft()
};
//viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.outerheight();

var bounds = this.offset();
//bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();

return (!(viewport.bottom < bounds.top || viewport.top > bounds.bottom));
};

function parallax() { 
var scrolled = $(window).scrollTop();
$('.lb-content__item').each(function(){ 

 if ($(this).is_on_screen()) {  
      var firstTop = ($(this).offset().top); 
      var $span = $(this).find(".lb-content__item-title");
      var moveTop = (firstTop-winScrollTop)*.2 //speed;
      $span.css("transform","translateY("+moveTop+"px)");

      if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
      var $zoom = $(this).find(".lb-content__item-img");
      var zoomTop = (firstTop-winScrollTop)*.06 //speed;
      $zoom.css("transform","translateY("+zoomTop+"px)");
      } else {
      var $zoom = $(this).find(".lb-content__item-img");
      var zoomTop = (firstTop-winScrollTop)*.35 //speed;
      $zoom.css("transform","translateY("+zoomTop+"px)");
      }
 }

  });
  }


$(window).scroll(function(e){
winScrollTop = $(this).scrollTop();
parallax();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...