2016-04-29 83 views
1

我知道這是一個常見問題,但如果包含CSS3,則添加body.modal-open {overflow:hidden;}來解決此問題的解決方案(如post中所述)將不起作用。當打開模式幷包含CSS3時,防止滾動滾動

  • 例如,參見這個bootply,其中可以滾動身體。
  • 不包括CSS3的相同示例 - >bootply。標準解決方案完美運作。

當打開模式幷包含CSS3時,如何防止滾動滾動?

+0

可以這個答案http://stackoverflow.com/a/9280412/1098851幫助? (請參閱演示) – fcalderan

+0

是的,打開模式時,將'noscroll'類添加到主體可修復問題。 http://www.bootply.com/Q1cqaJTGdF – d4rty

回答

2

添加類noscroll的身體時,模式是開放的,解決了這個問題。

JS:

$("#myModal").on("show", function() { 
    $("body").addClass("noscroll"); 
}).on("hidden", function() { 
    $("body").removeClass("noscroll") 
}); 

CSS:

.noscroll { overflow: hidden; } 

參見bootply

0

可以在模式的開放回調使用

$('html, body').css('overflow', 'hidden'); 

,並恢復它的OnClose

+0

你試過了嗎?因爲我的示例中的css規則完全是這樣,它不起作用。 – d4rty

+0

這將工作。在你的例子中,你有''{{overflow-x:hidden}''這不適用於垂直 – Ardian

+0

但是這兩個例子都有'overflow:hidden'?! – d4rty