【问题标题】:I would like my navbar-brand to spin on the click using Bootstrap 4我希望我的导航栏品牌使用 Bootstrap 4 在点击时旋转
【发布时间】:2020-09-15 09:21:02
【问题描述】:

我正在通过使用 Bootstrap 4 制作 Twitter 新界面来测试我的技能,但我的徽标有问题,我希望 Twitter 徽标在单击它时旋转。 我怎样才能做到这一点?

这是我所做工作的预览

https://gyazo.com/bf3626eef72bed0556f3c638c64351d0

HTML

  <a class="navbar-brand" href="#">  <img src="img/twitter-logo.png" width="auto" height="30" class="mx-auto d-inline-block align-top" alt=""></a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item">
        <a class="nav-link" href="#first">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#second">Who are we?</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#third">Functions</a>
      </li>
    </ul>
  </div>
</nav>

CSS 即使我认为拥有它并不重要

.navbar-brand {
    position: absolute;
    left: 50%;
    margin-left: -50px !important;  /* 50% of your logo width */
    display: block;
}

.navbar-brand > img {
    transform:scale(1);
    transition:transform .2s ease;
}

.navbar-brand > img:hover {
    transform:scale(1.2);
}

.navbar{
  position: fixed !important;
  width:100%;
  transition: background-color 1s;
  box-shadow:0 0 30px rgba(0,0,0,0.03);
  color:#000;
}

.navbar-nav li > a {
    color:rgba(0,0,0,0.22);
    font-weight:400;
}

.navbar-nav li > a:hover {
    color:rgba(0,0,0,1);
}

.navbar-nav > li{
  padding-left:5px;
  padding-right:5px;
}

【问题讨论】:

  • 您可以在 CSS 动画中使用transform:rotate()
  • 请添加有问题的&lt;nav&gt;。仅添加了关闭导航(&lt;/nav&gt;)。

标签: javascript html jquery css twitter-bootstrap


【解决方案1】:

添加这种样式

.navbar-brand.spining{
  animation-name: spin;
  animation-duration: 1000ms;
  animation-timing-function: ease; 
}

@keyframes spin {
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}

并通过

切换类spining
<a class="navbar-brand" href="#" onclick="this.classList.toggle('spining')">...</a> 

.navbar-brand {
    position: absolute;
    left: 50%;
    margin-left: -50px !important;  /* 50% of your logo width */
    display: block;
}

.navbar-brand > img {
    transform:scale(1);
    transition:transform .2s ease;
}

.navbar-brand > img:hover {
    transform:scale(1.2);
}

.navbar{
  position: fixed !important;
  width:100%;
  transition: background-color 1s;
  box-shadow:0 0 30px rgba(0,0,0,0.03);
  color:#000;
}

.navbar-nav li > a {
    color:rgba(0,0,0,0.22);
    font-weight:400;
}

.navbar-nav li > a:hover {
    color:rgba(0,0,0,1);
}

.navbar-nav > li{
  padding-left:5px;
  padding-right:5px;
}
.navbar-brand.spining{
  animation-name: spin;
  animation-duration: 1000ms;
  animation-timing-function: ease; 
}

@keyframes spin {
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<nav class="navbar navbar-expand-lg navbar-light">
<a class="navbar-brand" href="#" onclick="this.classList.toggle('spining')">  <img src="https://i.stack.imgur.com/plLel.png" width="auto" height="30" class="mx-auto d-inline-block align-top" alt=""></a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item">
        <a class="nav-link" href="#first">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#second">Who are we?</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#third">Functions</a>
      </li>
    </ul>
  </div>
</nav>

【讨论】:

  • 根据需要更改animation-duration: 1000ms;。尽情享受吧。
  • 我已经改成animation-duration:.5s; animation-timing-function: ease-in-out;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 2018-03-12
  • 1970-01-01
  • 2019-04-18
相关资源
最近更新 更多