serovpochta
@serovpochta
Лысый

Под модальным окном не фиксируется положение страницы сайта?

Скрипт:

$('.popup-post-modal-open').bind('click', DimaPopup);
    $('.popup-background').bind('click', Popupclose);

    function DimaPopup(e){
      e.preventDefault();
        
        $('.popup-loader').css('display', 'block');

        if (e.target.className.indexOf("gapplayer-wrapper")>=0||e.target.className.indexOf("fvp-dynamic")>=0){
          e.stopPropagation();
          return false;
        }

      var url = $(this).attr('href');

        // А вот так просто меняется ссылка
        if(url != window.location){
            window.history.pushState(null, null, url);
        }
     
      $('.popup-post').addClass('active');
      window.setTimeout(function(){$('.popup-post').scrollTop(0);},50);
      $('body').addClass('active');
      $('html').css('overflow', 'hidden');

		window.offScroll = false;
		$('.popup-post').off('scroll').on('scroll',function(){
		if ((this.scrollTop + $(this).height() + 50)>this.scrollHeight&&!window.offScroll){

		window.offScroll = true;
		}})

    $.ajax(
    {
       type : 'POST',
       url : 'https://' + location.host + '/wp-admin/admin-ajax.php',
       data: { action: 'popup_post', popup_post_id:$(this).parents('.title').children('.post-click-popup').children('span').text()
    },
       success: function(data){                   
        $('.post-generat-content').eq(0).html(data);

        $('.popup-loader').css('display', 'none');
        $('.popup-background').css('display', 'block');
             window.setTimeout(function(){
             if (gapStart) gapStart();},1000);
             var elem = $('.popup-post');
             $('html, body').animate({ scrollTop: elem.offset().top }, 750);
			var tempScrollTop = 50, currentScrollTop = 0; 
			var top1; 
			$('.popup-post.active').scroll(function(){ 
			currentScrollTop = $(this).scrollTop(); 
			if (tempScrollTop < currentScrollTop ){ //Скролим вниз 
			$('.vverh').attr('style', 'display:block;'); 
			$('.vniz').attr('style', 'display:none;');
			tempScrollTop = currentScrollTop; 
			top1 = currentScrollTop; 
			} else if (tempScrollTop > currentScrollTop ) { //Скролим вверх 
			$('.vverh').attr('style', 'display:none;');
			$('.vniz').attr('style', 'display:block;'); 
			tempScrollTop = currentScrollTop; 
			} 
			}); 
			$('.vniz').click(function(){ 
			$('.popup-post.active').animate({ scrollTop: top1 }, '50'); 
			});
			$('.vverh').click(function(){ 
			$('.popup-post.active').animate({ scrollTop: $('.post-generat-content').offset().top }, '50'); 
    });

             $('.close').bind('click', Popupclose);
             //window.setTimeout(function(){$('.popup-post').scroll();},1000);
             },
             error: function(error)
             {
             console.log('Ошибка');
             }
    });
   }
   var window_location = window.location.href;
   function Popupclose() {
      $('.popup-background').css('display', 'none');
      $('.popup-post').removeClass('active');
     
      window.history.pushState(null, null, window_location);
      $('body').removeClass('active');
      $('html').css('overflow', 'auto');
   }


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

Это здесь

Кликнув на ссылку любого превью поста

Помогите кто чем может =)
Спасибо за внимание!
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
Нужно убрать строку 23
$('body').addClass('active');

Или переделать стили
body.active {
    overflow: hidden;
    height: 100vh;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы