2017-08-04 52 views
0

我有這樣的:使用Jquerys切換來改變'display:none'來顯示。導致內容被壓扁

<div class="sub-slider" style="display: none;"> 
    <section class="subscriptions_slider container-fluid"> 
     <?php echo do_shortcode("[subscriptions_slider]"); ?> 
    </section> 
</div> 

而且使用jQuery這樣的:

$('.change-sub').on('click', function() { 
    $('.sub-slider').toggle(); 
}); 

如果我現在加載頁面,點擊change-sub按鈕。切換的內容被壓扁。 如果我加載頁面沒有style="display: none;"那麼它顯示正常。爲什麼是這樣?

+0

提供樣本內容以瞭解它是如何被擠壓的?其次,HTML中的「change-sub」在哪裏? –

+0

@MilanChheda本例中的內容是一個顯示訂閱滑塊的php插件。不知道如何顯示它。我認爲這與顯示選擇器獲取錯誤數據有關。 – vonhact

回答

0

這是因爲顯示:隱藏,它將保留空間容器:如果你不想要的元素得到刪除從DOM而使用可視性無財產將會移除DOM元素,

像下面這樣的東西。

<div class="sub-slider" style="visibility: hidden;"> 
    <section class="subscriptions_slider container-fluid"> 
     <?php echo do_shortcode("[subscriptions_slider]"); ?> 
    </section> 
</div> 

$('.change-sub').on('click', function() { 
    var visibilityProp = $('.sub-slider').attr('visibility'); 
    if(visibilityProp == 'hidden') 
    { 
     $('.sub-slider').attr('visibility','visible') 
    } 
    else 
    { 
     $('.sub-slider').attr('visibility','hidden'); 
    } 
}); 

請把它標記爲答案,如果它是根據自己的需要。

+0

謝謝,這可以修復我的錯誤。但是,爲什麼我使用'display:none;'是因爲我不想要一個大的空白區域。爲什麼'display'會導致這個錯誤? – vonhact

+0

這是html的顯示屬性的行爲,仍然可以使用類似的屬性,在頁面加載使用可見性屬性,然後使用顯示屬性。如果能解決您的問題,請將我的解決方案標記爲答案。 –

+0

錯字:'('visibility':'visible')'必須是'('visibility','visible')'或'({'visibility':'visible'})' – Axel