2011-08-03 18 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”左侧的元素。然后他们不会被切断。 –