2011-07-27 97 views
1

我試圖從jQuery中使用slideToggle效果。我想用於顯示更多按鈕。我有一個文本很多的div,前300個字符直接在div上,其餘的是在div中的span標籤上,其中display:none。我希望它更改爲display:inline,然後slideToggle被觸發,但它所做的是將其更改爲顯示:block。現在,我已經在回調函數中將它改爲顯示:inline,但是效果看起來很醜,因爲它首先顯示帶有display:block的跨度,然後更改爲display:inline :(。是否有任何解決方法可以使這看起來不錯?我看了很多網站,並沒有發現任何東西...謝謝:)slideToggle添加顯示問題:塊

+0

跨度應該顯示內嵌。爲什麼要打這種行爲? –

+0

我希望它內聯顯示,但是與slidetoggle,它會自動更改顯示:塊 –

+0

據我所知,滑動切換操縱元素的高度和溢出屬性(可能會更多)。 CSS高度對內聯元素不起作用,因此jQuery將在動畫之前始終「顯示:阻止」這些元素。 –

回答

5

這是因爲你最初不是用.slideToggle()隱藏,而是設置:隱藏在CSS ,這導致.slideToggle()回退到CSS標準(display:block)。

如果要調用元件作爲顯示:內聯,然後.slideToggle()它隱藏在初始負載,.slideToggle()存儲直列狀態

+0

它沒有爲我工作。我給出了跨度顯示:內聯在我的CSS中,然後在頁面加載時在其上執行.slideToggle()。跨度是隱藏的,當我切換它時,它會顯示:block =/ –

+0

請參閱http://jsfiddle.net/CCVLT/1/的內聯版本和http://jsfiddle.net/CCVLT同一個div的塊版本。在這個簡單的JSFiddle中,它通過存儲CSS提供的值並調用它來按預期工作。你是否在HTML中將內聯值存儲爲「樣式」?也許這就是爲什麼它不起作用。 – Semyazas

+0

我有這樣的顯示:inline;在頁面執行時加載的css文件中。我真的不明白你想告訴我什麼:S –