2013-08-15 1 views
-1

У меня есть меню с css переходами и css. Это построено так: В главном div темы есть еще один div с содержанием тем. Когда я хочу показать это, (onclick), я добавляю класс в главный div, который содержит height: auto; На самом деле он работает как за исключением, НО перед тем, как установить на правильную высоту, div устанавливает его высоту на 0. Зачем это происходит? Кто-нибудь знает, как этого избежать?menue с css переходами не работает, как ожидалось

Heres код:

html: 
<div class="class1" onclick="this.className='class1 class2'"> 
    test topic: (click here) 
    <div> 
     <ul> 
      <li>test</li> 
      <li>test</li> 
      <li>test</li> 
     </ul> 
    </div> 
</div> 

css: 
class1{ 
    height: 35px; 
    overflow: hidden; 
    transition: all 2s; 
} 
class2{ 
    height: auto; 
} 

Heres в jsfiddle.

И вот homepage. (Чтобы проверить это, НАЖМИТЕ прав ...)

+0

http://jsfiddle.net/UpuDU/ (вы можете сделать лучше с Jquery) –

+1

высота: автоматическая работа dosen't с переходом. Используйте значение с px (200px, 400px) – Anon

+0

, но тогда мне нужно фиксированное значение для каждого окна ... –

ответ

0

Это было покрыто раньше: How can I transition height: 0; to height: auto; using CSS?, CSS transition auto height not working, CSS3 transition to height auto goes to height 0 first, http://css3.bradshawenterprises.com/animating_height/

Похоже, работа вокруг использовать макс-высота вместо высоты, и для вашего перехода установите максимальную высоту, а не height: auto. Просто будьте осторожны, если вы установите максимальную высоту, намного превышающую высоту, время вашего перехода будет сброшено.

.class2{ 
    max-height:200px; 
} 

Demo с помощью скрипку: http://jsfiddle.net/Jag96/SwWXm/

+0

время совершенно неверно с этим ... переход «назад» задерживается на 2 секунды ... Во всяком случае у меня есть другое решение: каждый атрибут div имеет специальный атрибут, называемый «px», выглядит так: < div class = "..." px = "115"> это значение im, получаемое с javascript, и установка высоты на это. –