Comment je définis le débordement de corps masqué quand une classe appelée

Je veux définir le débordement du corps sur masqué lorsque la classe “popup” a été utilisée. Et appelé cette classe par JavaScript. En tant que CSS, ça ne marche pas.
Puis-je avoir une balise “body” nestede dans ma classe comme ceci?

#CSS .popup { display: table; height: 100% !important; table-layout: fixed; width: 100%; position: fixed; top: 0px; bottom: 0px; z-index: 400; body { overflow: hidden!important; } } 

Mon exemple est lorsque vous cliquez sur les photos de Facebook, il apparaîtra en plein écran et le défilement verrouillé. Merci tout aide

Je l’appelle comme ça.

 Click to view larger 

JavaScript

 function getphoto(inputSsortingng) { $('body').css('overflow', 'hidden'); if(inputSsortingng.length == 0||false) { $('#suggestions3').fadeOut(); // Hide the suggestions box }else{ //alert(inputSsortingng); $.post("p/photo.php", {querySsortingng: ""+inputSsortingng+""}, function(data) { // Do an AJAX call $('#suggestions3').fadeIn(); // Show the suggestions box $('#suggestions3').html(data); // Fill the suggestions box }); } } 

inputSsortingng est une photo. Dans photo.php, il renvoie le contenu HTML

Puis-je avoir une balise “body” nestede dans ma classe comme ceci? Non.

Lorsque la classe popup est appelée, utilisez jQuery .css() cette façon:

 $("body").css("overflow", "hidden"); 

Plus d’infos: http://api.jquery.com/css/

Vous ne pouvez pas utiliser CSS comme ça. Vous pouvez cependant avoir une classe appelée overflow-hidden dans votre css qui se trouve juste comme ceci:

 .overflow-hidden{ overflow:hidden !important; } 

Puis dans jQuery:

 $('.popup').click(function(){ $('body').addClass('overflow-hidden'); }); 

Vous pouvez aussi utiliser

 toggleClass() 

et

 removeClass() 

afin que vous puissiez addClass() quand vous voulez lui donner la classe css puis removeClass() une fois que le popup est parti.

Non, vous ne pouvez pas utiliser css comme ça

 if($('.popup').is(':visible')){ $("body").css('overflow', 'hidden'); } 

ou

 $('.popup').click(function(){ $("body").css('overflow', 'hidden'); }); 

Sur la fermeture de votre popup ou autre condition

  $("body").css('overflow', 'yourchoice'); 

Vous pouvez utiliser jQuery comme ceci:

 $('body').filter(function(){ return $(this).find('.popup').is(':visible') }).css('overflow','hidden'); 

Vous ne pouvez pas utiliser de css nesteds comme dans votre exemple.

Vous pouvez utiliser addClass et removeClass dans votre jquery

 .bodyOverflow() { overflow:hidden; } 

Et en jquery

 $('.popup').on('click', function(){ $('body').addClass('bodyOverflow'); }); 

Quelque chose comme ça?

DEMO http://jsfiddle.net/pwzaT/

JQUERY

 $('button#show').on('click', function(){ $('.popup').fadeIn(300); $('body').css('overflow','hidden'); }); $('button#hide').on('click', function(){ $('.popup').fadeOut(300); $('body').css('overflow','auto'); });