Задать вопрос
serovpochta
@serovpochta
Лысый

При открытом попап вешать стиль на body, не назначая его для попап?

Попап открывается таким образом (извиняюсь, таков скрипт):
function loadContents() {
		var url = $('.posts-navigation.hide .next').attr('href');
		if (url) {
			main_loader.fadeIn(250);
			$.ajax({
				type: "GET",
				url: url,
				dataType: "html",
				success: function (loaded) {
					var result = $(loaded).find('.boxcontainer .pinbox');
					var nextlink = $(loaded).find('.posts-navigation .next').attr('href');
					$(loaded).imagesLoaded(function() {
						$container.append(result).masonry('appended', result);
						$('.popup-post-modal-open').bind('click', DimaPopup);

						if (ismobile != 1) {
							$('.tooltip').aToolTip();
                            if ($('video').length || $('audio').length) {
                                $('video, audio').mediaelementplayer();
                            }
						}
					});

					main_loader.fadeOut(100);
					if (nextlink != 'undefined') {
						$('.posts-navigation .next').attr('href', nextlink);
					} else {
						$('.posts-navigation').remove();
					}
					loading = false;
				}
			});
		}
	}

	/*	IE debugging */
	if (navigator.userAgent.match(/msie|trident/i)) {
        $('.pinbox iframe').on('hover', function(){
            $(this).parents('.pinbox').toggleClass('hover');
        });
    }

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

});

    var $ = jQuery;

    function DimaPopup(e){
      e.preventDefault();
        
        $('.popap-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-x', 'initial');

		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 : 'http://' + 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);

        $('.popap-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-x', 'hidden');
   }


Надо, при открытом попап, страницу под попап делать размытой
В скриптах я не шарю, но может последние строки здесь помогут:

function Popupclose() {
      $('.popup-background').css('display', 'none');
      $('.popup-post').removeClass('active');
     
      window.history.pushState(null, null, window_location);
      $('body').removeClass('active');
      $('html').css('overflow-x', 'hidden');
   }


Спасибо за внимание )
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Оценить 8 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

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