简体   繁体   English

动态 Bootstrap 4 导航栏“活动”标签

[英]Dynamic Bootstrap 4 Navbar "active" tag

i need to change the "active" class depending on the site you are right now when clicking the header.当单击标题时,我需要根据您现在所在的站点更改“活动”类。

Ive seen some examples using a php check if you are on the page "noten.php" and it would change the navbar class to active accordingly, also checked some Javascript like this如果您在页面“noten.php”上,我已经看到一些使用 php 检查的示例,它会相应地将导航栏类更改为活动状态,还检查了一些这样的 Javascript

$('.navbar-nav .nav-link').click(function(){
$('.navbar-nav .nav-item').removeClass('active');
$(this).addClass('active');

}) but nothing worked }) 但没有任何效果

    <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
  <a class="navbar-brand" href="/">Projekt</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarCollapse">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="/">Startseite</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="/noten.php">Noten</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Soon</a>
      </li>
    </ul>

We don't know much about your PHP logic, but the implementation may be pretty simple:我们不太了解您的 PHP 逻辑,但实现可能非常简单:

<?php
  $uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
  $uri_segments = explode('/', $uri_path);
?>


<li class="nav-item <?php echo 'active page-' . $uri_segments[0]; ?>">
  <a class="nav-link" href="/">Startseite</a>
</li>

For the url http://foobar/first/second will add the class page-first .对于 url http://foobar/first/second将添加类page-first

Ive found a way.我找到了办法。

Adding this at the top of my header include在我的标题顶部添加这个包括

<?php
$pg = basename(substr($_SERVER['PHP_SELF'],0,strrpos($_SERVER['PHP_SELF'],'.'))); // get file name from url and strip extension

?> ?>

and then adding this to the Navbar itself然后将其添加到导航栏本身

          <li class="nav-item <?php if($pg=='index'){?>active<?php }?>">
        <a class="nav-link" href="/">Startseite</a>
      </li>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM