2016-01-22 3 views
0

У меня есть этот JSFiddle, который включает в себя аккордеон Bootstrap, встроенный в другой Аккордеон, проблема в том, что Chevron справа не ведет себя так, как ожидалось.Изменить направление иконки на Accordion Collapse

Как видно из приведенного ниже кода, шеврон меняет направление при запуске collapse, однако теперь он находится в встроенном аккордеоне, и это не похоже на решение.

$('.collapse').on('shown.bs.collapse', function(){ 
$(this).parent().find(".glyphicon-chevron-down").removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up"); 
}).on('hidden.bs.collapse', function(){ 
$(this).parent().find(".glyphicon-chevron-up").removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down"); 
}); 
+0

Я думаю, что это новая возможность для самозагрузки коллапса http://jsfiddle.net/rr7oggLv/3/ shown.bs.collapse работает для всех collpase, но не для конкретного =/ – Osgux

ответ

2

Я обычно предпочитаю делать это с помощью CSS - менее грязной, чем пытаться определить, какой элемент открыт/закрыто, когда вы вложенность, или иметь несколько на одной странице.

1) Добавьте класс 'collapsed' в ваши заголовки аккордеона, если они по умолчанию закрыты (bootstrap переключает этот класс, но если у вас его нет при загрузке страницы, он не добавляется до тех пор, пока вы не открыть, а затем закрыть элемент аккордеона).

2) Избавиться от JS и добавить этот CSS:

.panel-heading.collapsed .glyphicon-chevron-down { 
    transform:rotateX(0deg); 
} 
.panel-heading .glyphicon-chevron-down { 
    transition:transform .5s; 
    transform:rotateX(180deg); 
} 

Если вы не любите покадровую анимацию, просто избавиться от transition правил, но мне нравится думать, что это добавляет немного что нибудь.

http://jsfiddle.net/rr7oggLv/6/

+0

Действительно хорошего метода и спасибо за добавление флип-анимации, спасибо! –

+0

Рад, что это работает для вас. :-) – ryantdecker

+0

У меня есть следующий запрос по этому вопросу, если бы я хотел, чтобы окно «пример 2» было открыто с самого начала, и поэтому шеврон должен быть направлен вверх с самого начала, как бы я изменил CSS для учета некоторых шевронов поднимаясь, а некоторые вниз? Я предполагаю, что мне нужно будет применить второй класс к тем, которые должны начаться, например? –

Смежные вопросы