2016-11-16 83 views
2

我使用Featherlight作爲燈箱。我遇到的一個問題是,它打開了,背景仍然是可滾動的。大多數燈箱需要的修補程序是在其上添加一個類別爲overflow:hidden;的類。防止後臺滾動打開燈箱

如何在燈箱上打開,然後關閉該類?

+0

https://github.com/noelboss/featherlight/#configuration - 文檔的這一部分揭示了所有可以在其上綁定實現這一... –

+0

HTTP回調:/ /stackoverflow.com/questions/4770025/how-to-disable-scrolling-temporarily你不想做溢出:隱藏,因爲這隱藏了滾動條,可以導致重繪(這是緩慢的) –

回答

2

可以使用的beforeOpenafterClose選項,比如使用您的插件調用的選項:

$.featherlight({ 
    beforeOpen: function() { 
     document.body.style.overflow = 'hidden'; 
    }, 
    afterEnd: function() { 
     document.body.style.overflow = ''; 
    } 
}); 
+0

這也隱藏了滾動條並可能導致重繪 –

0

你可以試試下面的步驟:

1)添加新的CSS類爲:

.bodyNoOverflow{ 
    overflow:hidden; 
} 

2)修改Featherlight Widget初始化配置並修改beforeOpenbeforeClose回調函數爲:

beforeOpen: function(event){ 

    $("body").addClass("bodyNoOverflow"); 
    //existing code if any 
}, 

beforeClose: function(event){ 

    $("body").removeClass("bodyNoOverflow"); 
    //existing code if any 
}, 
+0

這也隱藏滾動條,並可能導致重繪 –