2011-08-03 17 views
1

JsFiddle DEMO

我有以下的html:這個toggle()有什麼問題?

<ul> 
    <li> 
     <div></div> 
     Testing 
    </li> 
    <li> 
     <ul> 
      <li></li> 
      <li> 
       <div></div> 
       Testing 
      </li> 
      <li></li> 
     </ul> 
    </li> 
</ul> 

我打電話這個js就可以了:

$('li').hide(2000); 

現在我身邊有我想要的div的是一個邊界邊框也會漸漸消失,但正如你所看到的,邊框首先完全消失,然後剩下的元素慢慢消失。

有什麼我可以做的,使邊界像元素的其餘部分褪色?

+0

您使用的瀏覽器是?對於我在鉻12,即8和FF4的邊界淡入淡出適當罰款 – hughes

+0

它的工作原理,如果你不重新定位的div http://jsfiddle.net/EhzwV/5/ – Calum

回答

4

如果您試圖隱藏'ul',並且對DOM可見性具有相同的效果,則適用。

setTimeout(function() { $('ul').hide(2000); }, 500); 

http://jsfiddle.net/EhzwV/1/

0

這將隱藏所有的li元素。如果你想要的任何特定的元素隱藏通過適當的選擇

$('ul').hide(2000);//This will work for you I guess 
1

的隱藏動畫集overflow: hidden你的元素,這是什麼原因造成這一點。你可以看到這個,如果你自己設置溢出沒有動畫。

http://jsfiddle.net/EhzwV/2/

+0

有什麼辦法,我可以強迫它不改變隱藏? – qwertymk

+0

你可以在'li'上做'overflow:visible!important ;'。但是這會破壞隱藏的效果。如果你打算這樣做,最好使用'fadeOut'。元素消失時元素縮小的方式需要隱藏溢出。 –

+0

或者,您可以重新設計一些以消除懸掛在「li」左側的元素。然後他們不會被切斷。 –