2
respostas

Animação do TopCasaFina-banner não funciona

Não consigo fazer a caixa central (.TopCasaFina-banner) se mover quando clico no menu. Não há erro sendo exibido e nenhum comportamento.

O fato de estar usando o Angular para implementar me fez pensar que havia algo de errado. Fiz várias alterações estáticas, colocando a importação direta no código. O comportamento foi o mesmo, sem erros e a caixa central não se move.

$('#collapse-navbar').on('show.bs.collapse', function () {
  $('.TopCasaFina-banner').css('transform','translate(-50%,10%)');
});

O código do js que faz a transformação está assim. Tentei alterar o evento para 'shown.bs.collapse' mas não funcionou.

Meu html parece estar correto:

<header>
  <nav class="navbar navbar-default">
    <div class="container">
      <div class="navbar-header">
        <button id="button-collapse-navbar" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#collapse-navbar" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a href="" class="navbar-brand">TopCasaFina Arquitetura</a>
      </div>
      <div id="collapse-navbar" class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
          <li><a href="#sobre-nos">Sobre Nós</a></li>
          <li><a href="#nossos-projetos">Nossos Projetos</a></li>
          <li><a href="#depoimentos">Depoimentos</a></li>
          <li><a href="#video">Vídeo</a></li>
          <li><a href="#contato">Contato</a></li>
        </ul>
      </div>
    </div>
  </nav>
  <div class="TopCasaFina-banner">
    <h1>TopCasaFina Arquitetura</h1>
    <p>Projetando a casa dos sonhos desde 2000</p>
    <button class="btn btn-primary btn-lg">Contate-nos agora</button>
  </div>
</header>

Fiz um teste agora. Joguei o código do fix no console:

$('#collapse-navbar').on('show.bs.collapse', function () {
  $('.TopCasaFina-banner').css('transform','translate(-50%,10%)');
});

Deveria funcionar então, não? Mas não funcionou...

Atualização: coloquei o projeto fora do angular2, e funcionou! Apesar de não haver erro nenhum no Angular2, e os scripts todos carregarem, não funciona!

Não sei mais por qual caminho seguir para debugar isso. Alguém pode me ajudar?

Obrigado.

2 respostas

Está tudo certo no css?

.topCasaFina-banner {
    color: #FFF;
    background-color: rgba(0; 0; 0; 0.5);
    padding: 20 px;
    width: 80%;
    border-radius: 8px;
    position: absolute; 
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: 0.3s;
}

Sim Marcus, está tudo certo. Na verdade estou usando o Angular4. Recebi um feedback de que provavelmente, o que está acontecendo é um conflito entre o Angular4 e o Jquery. Como retirei o projeto do Angular e tudo funcionou bem, vou me aprofundar no Angular para implementar as animações dentro do Angular, diretamente.

Qualquer dica é bem vinda! Muito grato pelo feedback.