Come ho impostato l’overflow del corpo nascosto quando una class ha chiamato

Voglio impostare l’overflow del corpo su nascosto quando è stata usata la class “popup”. E chiamato questa class da JavaScript. Come il mio CSS non funziona.
Posso avere un tag “body” annidato nella mia class in questo modo?

#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; } } 

Il mio esempio è quando si fa clic sulle foto di Facebook, apparirà a schermo intero e lo scorrimento bloccato. Grazie a tutti

Lo chiamo così.

 Click to view larger 

JavaScript

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

inputString è un ID foto. In photo.php restituisce il contenuto html

Posso avere un tag “body” annidato nella mia class in questo modo? No.

Quando viene chiamata la class popup , utilizzare jQuery .css() questo modo:

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

Ulteriori informazioni: http://api.jquery.com/css/

Non puoi usare CSS come quello. Puoi comunque avere una class chiamata overflow-hidden nel tuo css che si trova in questo modo:

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

Quindi in jQuery:

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

Puoi anche usare

 toggleClass() 

e

 removeClass() 

quindi puoi addClass() quando vuoi dargli la class css e poi removeClass() una volta che il popup è scomparso.

No, non puoi usare css in questo modo

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

o

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

Alla chiusura del tuo popup o condizione

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

Puoi usare jQuery in questo modo:

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

Non puoi usare css annidati come nel tuo esempio.

Puoi usare addClass e removeClass nella tua jquery

 .bodyOverflow() { overflow:hidden; } 

E in jQuery

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

Qualcosa come questo?

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'); });