Usando o exemplo principal retirado do Javascript do Bootstrap 3 página de exemplos para o Collapse , pude mostrar o estado do colapso usando os ícones da chevron.
Eu tenho este trabalho usando:
$('#accordion .accordion-toggle').click(function (e) {
var chevState = $(e.target).siblings("i.indicator").toggleClass('glyphicon-chevron-down glyphicon-chevron-up');
$("i.indicator").not(chevState).removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up");
});
Isso funciona (não foi totalmente testado em todos os navegadores), mas estou me perguntando se há uma solução mais elegante para isso?
Idealmente, eu gostaria de usar a função principal, mas não tenho certeza de como obter os mesmos resultados com ela.
$('#accordion').on('hidden.bs.collapse', function () {
//do something...
})
Aqui está uma versão de trabalho no jsfiddle .
jquery
css
twitter-bootstrap
twitter-bootstrap-3
Ryan Scott
fonte
fonte
Respostas:
Para o seguinte HTML (dos exemplos do Bootstrap 3 ):
Efeito visual:
fonte
Você pode usar este tipo de código:
=> Trabalhando JsFiddle
fonte
$('#accordion').on('hidden.bs.collapse shown.bs.collapse', toggleChevron);
$('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron);
em vezPara melhorar a resposta com a maioria dos upticks, alguns de vocês devem ter notado no carregamento inicial da página que as setas apontam na mesma direção. Isso é corrigido adicionando a classe "recolhido" aos elementos que você deseja carregar recolhidos.
Aqui está um violino de trabalho: http://jsfiddle.net/3gYa3/585/
fonte
Melhoria na resposta de Bludream:
Você pode definitivamente usar o FontAwesome!
Certifique-se de incluir a classe "recolhido" junto com a classe "cabeçalho do painel". A classe "recolhida" não é incluída até você clicar no painel para incluir a classe "recolhida" para exibir a divisa correta (por exemplo, a divisa à direita é exibida quando recolhida e a divisa aberta quando aberta).
HTML
CSS
Além disso, é uma boa prática criar uma nova classe em vez de usar uma classe existente.
Veja Codepen por exemplo: http://codepen.io/anon/pen/PPxOJX
fonte
Graças a biggates e steakpi. Como resposta à pergunta Dreamonic, fiz algumas alterações para tornar todos os cabeçalhos clicáveis (não apenas a sequência do título e os gluphs) e decolou o sublinhado do link. Para forçar um ícone a aparecer na mesma linha, adicionei h4 no final das instruções CSS. Aqui está o código modificado:
E o CSS modificado:
fonte
Aqui estão algumas classes auxiliares css puras que permitem lidar com qualquer tipo de alternância de conteúdo diretamente no seu html.
Funciona com qualquer elemento que você precise alternar. Seja qual for o layout, basta colocá-lo dentro de alguns elementos com as classes .if-collapsed e .if-collapsed dentro do elemento de alternância.
O único problema é que você deve certificar-se de colocar o estado inicial desejado da alternância. Se estiver inicialmente fechado, coloque uma classe recolhida na alternância.
Também requer o seletor : not , não funciona no IE8.
Exemplo HTML:
Menos versão:
Versão CSS:
fonte
Eu sei que isso é antigo, mas, como agora é 2018, pensei em responder, simplificando o código e aprimorando a experiência do usuário, fazendo a viga girar com base no recolhido ou não. Eu estou usando FontAwesome no entanto. Aqui está o CSS:
Aqui está o HTML da seção do painel:
Uso bootstraps pull-right para puxar a viga até a direita do cabeçalho do painel, que deve ter largura total e capacidade de resposta. O CSS faz todo o trabalho de animação e gira a divisa com base em se o painel está fechado ou não. Simples.
fonte
trabalhando exemplo simples
entre simples
HTML :
Javascript
fonte
ou ... você pode simplesmente colocar um estilo como este.
http://codepen.io/anon/pen/GJjrQN
fonte
Estou usando uma fonte incrível ! e queria que um painel fosse dobrável
e o css
fonte
Angular parece causar problemas com as abordagens baseadas em JavaScript aqui (pelo menos as que eu tentei). Encontrei esta solução aqui: http://www.codeproject.com/Articles/987311/Collapsible-Responsive-Master-Child-Grid-Using-Ang . O essencial é usar
data-ng-click
o botão de alternância e criar o método para alterar o botão no controlador usando o$scope
contexto.Eu acho que poderia fornecer mais detalhes ... meus botões estão configurados para o glyphicon do estado inicial da div que eles colapsam (glyphicon-chevron-right == collapsed div).
page.html:
controllers.js:
fonte
Uma linha.
Neste exemplo, ele está sendo usado para agrupar linhas de tabela recolhíveis. A única coisa que você precisa fazer é adicionar o nome da classe de destino (my-collapse-name) ao seu ícone:
Você pode realizar o mesmo com a classe de cursor nativo do Bootstrap usando
<span class='caret my-collapse-name'></span>
espan.caret.collapse.in { transform: rotate(90deg); }
fonte
Se você estiver tentando usar isso apenas com painéis (não com acordeão), tente este código:
fonte
Eu queria uma abordagem html pura, pois queria recolher e expandir o html que foi adicionado rapidamente através de um modelo! Eu vim com isso ...
https://jsfiddle.net/3mguht2y/1/
O que pode ser útil para alguém :)
fonte