Em "PRODUTOS", clique em deslizar para cima um div branco (como mostrado no anexo). Quando estiver no responsivo (celular e tablet), gostaria de fechar automaticamente a barra de navegação responsiva e mostrar apenas a barra branca.
Eu tentei:
$('.btn-navbar').click();
também tentei:
$('.nav-collapse').toggle();
E funciona. No entanto, no tamanho do desktop, ele também é chamado e faz algo estranho no menu, diminuindo por um segundo.
Alguma ideia?
javascript
html
css
twitter-bootstrap
user1040259
fonte
fonte
Respostas:
Tenho que trabalhar com animação!
Menu em html:
Evento de clique de vinculação em todos os elementos na navegação para recolher o menu (plugin de recolhimento do Bootstrap):
EDITAR Para torná-lo mais genérico, podemos usar o seguinte trecho de código
fonte
a
elementos: você só precisa ligar$("#nav-main").collapse('hide');
Você não precisa adicionar nenhum javascript extra ao que já está incluído com a opção de recolhimento de bootstraps. Em vez disso, simplesmente inclua os seletores de alternância de dados e de destino de dados em seus itens de lista de menu, assim como você faz com o botão de alternância da barra de navegação. Portanto, para o item do menu Produtos, seria assim
Em seguida, você precisaria repetir os seletores de alternância de dados e alvo de dados para cada item do menu
EDITAR!!! A fim de corrigir problemas de estouro e oscilação nesta correção, estou adicionando mais alguns códigos que irão consertar isso e ainda não tem nenhum javascript extra. Aqui está o novo código:
Aqui está ele no trabalho http://jsfiddle.net/jaketaylor/84mqazgq/
Isso tornará seus seletores de alternância e alvo específicos para o tamanho da tela e eliminará falhas no menu maior. Se alguém ainda estiver tendo problemas com falhas, entre em contato e eu encontrarei uma solução. obrigado
EDIT : No bootstrap v4.1.3 não consegui usar classes visíveis / ocultas. Em vez de
hidden-xs
usard-none d-sm-block
e em vez devisible-xs
usard-block d-sm-none
.fonte
data-toggle
edata-target
a cada elemento li, você pode adicioná-los ao paiul
ou àsdiv
tags.Acho que você é especialista em engenharia ..
EDITAR: para cuidar dos submenus, certifique-se de que sua âncora de alternância tenha a classe de alternância suspensa nela.
EDIT 2: Adicionar suporte para toque de telefone.
fonte
Eu realmente gostei da ideia de Jake Taylor de fazer isso sem JavaScript adicional e tirar vantagem do seletor de colapso do Bootstrap. Descobri que você pode corrigir o problema de "oscilação" presente quando o menu não está no modo recolhido, modificando
data-target
ligeiramente o seletor para incluir ain
classe. Então fica assim:Eu não testei com menus suspensos / aninhados, então YMMV.
fonte
só para ficar completo, no Bootstrap 4.0.0-beta usando .show funcionou para mim ...
fonte
Estou assumindo que você tem uma linha como esta definindo a área de navegação, com base em exemplos de Bootstrap e todos
Basta adicionar as propriedades como tal, como no botão MENU
Eu também adicionei
<body>
, funcionou. Não posso dizer que criei um perfil ou algo assim, mas parece um prazer para mim ... até que você clique em um ponto aleatório da IU para abrir o menu, então não é tão bom assim.DK
fonte
Isso funciona, mas não anima.
fonte
No HTML eu adicionei uma classe de nav-link à uma tag de cada link de navegação.
fonte
esta solução tem um bom trabalho, tanto no desktop quanto no celular.
fonte
Apenas para explicar a solução do user1040259, adicione este código ao seu $ (document) .ready (function () {});
Como eles mencionaram, isso não anima o movimento ... mas fecha a barra de navegação na seleção do item
fonte
Para aqueles que usam AngularJS e Angular UI Router com isso, aqui está minha solução (usando a chave de alternância de mollwe). Onde ".navbar-main-collapse" é o meu "alvo de dados".
Criar diretiva:
Diretriz de uso:
fonte
Isso deve funcionar.
Requer bootstrap.js.
Exemplo => http://getbootstrap.com/javascript/#collapse
Isso faz a mesma coisa que adicionar os atributos 'data-toggle = "collapse"' e 'href = "yournavigationID"' às tags dos menus de navegação.
fonte
Estou usando a função mollwe, embora tenha adicionado 2 melhorias:
a) Evite o fechamento da lista suspensa se o link clicado estiver recolhido (incluindo outros links)
b) Oculte a lista suspensa também, se você estiver clicando no conteúdo da web visível.
fonte
Não é o tópico mais recente, mas procurei uma solução para o mesmo problema e encontrei uma (uma mistura de alguns outros).
Eu dei o NavButton:
um id / identificador como:
Não é a melhor "ideia" - mas: Funciona para mim! Agora você pode verificar a visibilidade do seu botão (com jquery) como:
(NOTA: Este é apenas um código cortado! Usei um evento "onclick" em meus links de navegação! (Iniciando um Reguest AJAX.)
O resultado é: Se o botão está "visível", ele foi "clicado" ... Então: Não há Bug se você usar a "Visualização em tela cheia" do Bootstrap (largura de mais de 940px).
Saudações Ralph
PS: Funciona bem com IE9, IE10 e Firefox 25. Não verifiquei outros - mas não consigo ver um problema :-)
fonte
Isso funcionou para mim. Eu fiz assim, quando clico no botão de menu, estou adicionando ou removendo a classe 'in', porque ao adicionar ou remover essa classe o alternador está funcionando por padrão. 'e.stopPropagation ()' é para parar a animação padrão por bootstrap (eu acho) você também pode usar o 'toggleClass' no lugar de adicionar ou remover classe.
$ ('# ChangeToggle'). On ('click', function (e) {
fonte
Você pode usar
Por padrão, isso fechará a barra de navegação. Por favor, deixe-me saber se alguém achar isso útil
fonte
Se, por exemplo, seu ícone alternável estiver visível apenas para dispositivos muito pequenos, você pode fazer algo assim:
Clicar em [data-toggle = "offcanvas"] adicionará .hidden-xs do bootstrap ao meu # menu lateral, o que ocultará o conteúdo do menu lateral, mas ficará visível novamente se você aumentar o tamanho da janela.
fonte
se o menu HTML for
on nav alternar 'na' classe é adicionado e removido do alternador. verifique se o menu responsivo está aberto e, em seguida, alterne para fechar.
fonte
Tuggle Nav Close, resposta compatível com o navegador IE, sem nenhum erro de console. Se você estiver usando bootstrap, use este
fonte
fonte
Solução Bootstrap 4 sem qualquer Javascript
Adicione atributos
data-toggle="collapse" data-target="#navbarSupportedContent.show"
ao div<div class="collapse navbar-collapse">
Certifique-se de fornecer o correto
id
emdata-target
fonte