Я хочу, чтобы класс <li>
менялся под активной директивой … теперь, каждый справочник показывает мне, как это сделать, когда ваша страница равна ему, но я хочу изменить <li>
зависимости от того, какой dirrectory im on
например:
если я скажу им
http://example.com/RESOURCES/code/opensource ,
или
http://example.com/RESOURCES/images/clipart
я хочу, чтобы «РЕСУРСЫ» ^^ <li>
были «class =» активными », в то время как остальные отображают« class = »noactive» '
или если im on
http://example.com/tutorials/css/flawless-dropdown-menu
Я хочу, чтобы «учебные пособия» <li>
были «class =» активными », в то время как остальные« class = »noactive» '
Это мой пример того, как отображаются мои URL-адреса …
http://example.com/tutorials/css/flawless-dropdown-menu
^^ Этот URL является страницей учебника …. в каталоге «tutorials», чем в каталоге категории «CSS», чем заголовок страницы (все эти каталоги не являются реальными и переписываются из .htaccess) [ не имеет значения]
<ul id="mainnav"> <li class="noactive"><a href="/">Home</a></li> <li class="active"><a href="/tutorials/">Tutorials</a></li> <li class="noactive"><a href="/resources/">Resources</a></li> <li class="noactive"><a href="/library/">Library</a></li> <li class="noactive"><a href="/our-projects/">Our Projects</a></li> <li class="noactive"><a href="/community/">Community</a></li> </ul>
Выяснил ОТВЕТ … Я уже думал об этом.
<ul id="mainnav"> <li class="<?php if ($first_part=="") {echo "active"; } else {echo "noactive";}?>"><a href="#">Home</a></li> <li class="<?php if ($first_part=="tutorials") {echo "active"; } else {echo "noactive";}?>"><a href="#">Tutorials</a></li> <li class="<?php if ($first_part=="resources") {echo "active"; } else {echo "noactive";}?>"><a href="#">Resources</a></li> <li class="<?php if ($first_part=="library") {echo "active"; } else {echo "noactive";}?>"><a href="#">Library</a></li> <li class="<?php if ($first_part=="our-projects") {echo "active"; } else {echo "noactive";}?>"><a href="#">Our Projects</a></li> <li class="<?php if ($first_part=="community") {echo "active"; } else {echo "noactive";}?>"><a href="#">Community</a></li> </ul>
<?php $directoryURI = $_SERVER['REQUEST_URI']; $path = parse_url($directoryURI, PHP_URL_PATH); $components = explode('/', $path); $first_part = $components[1]; ?>
header.php
$activePage = basename($_SERVER['PHP_SELF'], ".php");
nav.php
<ul> <li class="<?= ($activePage == 'index') ? 'active':''; ?>"><a href="/index.php">Home</a></li> <li class="<?= ($activePage == 'tutorials') ? 'active':''; ?>"><a href="/tutorials.php">Tutorials</a></li> ...
Через PHP вы можете попробовать –
<?php // gets the current URI, remove the left / and then everything after the / on the right $directory = explode('/',ltrim($_SERVER['REQUEST_URI'],'/')); // loop through each directory, check against the known directories, and add class $directories = array("index", "tutorials","resources","library","our-projects","community"); // set home as 'index', but can be changed based of the home uri foreach ($directories as $folder){ $active[$folder] = ($directory[0] == $folder)? "active":"noactive"; } ?> <ul> <li class="<?php echo $active['index']?>"><a href="/">Home</a></li> <li class="<?php echo $active['tutorials']?>"><a href="/tutorials/">Tutorials</a></li> <li class="<?php echo $active['resources']?>"><a href="/resources/">Resources</a></li> <li class="<?php echo $active['library']?>"><a href="/library/">Library</a></li> <li class="<?php echo $active['our-projects']?>"><a href="/our-projects/">Our Projects</a></li> <li class="<?php echo $active['community']?>"><a href="/community/">Community</a></li> </ul>
Может быть, это поможет вам:
$(document).ready(function() { var parts = document.URL.split("/"); // [http:, empty, your domain, firstfolder] var firstFolder = parts[3]; $("#mainnav li").attr("class", "noactive"); $("#mainnav a[href='/" + firstFolder + "/']").parent().attr("class", "active"); });
Скорее всего, это связано с jQuery, но это работает:
$url='http://example.com/tutorials/css/flawless-dropdown-menu';//pass the current url here instead of a static string. $segments = explode ("/",$url); $menuItems=array('Tutorials','Resources', 'Library', 'Our-Projects','Community'); $menu=array(); foreach ($menuItems as $menuItem) { if($segments[3]==strtolower($menuItem)){ $menu[]=('<li class="active"><a href="/'.strtolower($menuItem).'/">'.str_replace("-"," ",$menuItem).'</a></li>'); } else { $menu[]=('<li class="no-active"><a href="/'.strtolower($menuItem).'/">'.str_replace("-"," ",$menuItem).'</a></li>'); } } foreach ($menu as $item) { echo $item.'<br />'; }
с активным классом bootstrap li
<ul> <li class="<?php if($_GET['link']=='home') echo 'active'; else echo ''; ?>"> <a href="?link=home">Home</a> </li> <li class="<?php if($_GET['link']=='home') echo 'active'; else echo ''; ?>"> <a href="?link=contactus">Contact Us</a> </li> </ul>
<?php $request_uri= $_SERVER['REQUEST_URI'];?> <ul> <li class="<?php if((strpos($request_uri,"index.html")!==false) || $request_uri=="" || $request_uri=="/"){echo "selected";}?>"><a href="/index.html">Home</a></li> <li class="<?php if((strpos($request_uri,"service")!==false)){echo "selected";}?>"><a href="/services.html">Services</a> </li> <li class="<?php if((strpos($request_uri,"product")!==false)){echo "selected";}?>"><a href="/products.html">Products</a></li> <li class="<?php if((strpos($request_uri,"blog")!==false)){echo "selected";}?>"><a href="/blog.html">Blog</a></li> <li class="<?php if((strpos($request_uri,"question")!==false)){echo "selected";}?>"><a href="/question-answers.html">Ques & Ans</a></li> <li class="<?php if((strpos($request_uri,"career")!==false)){echo "selected";}?>"><a href="/career.html">Career</a></li> <li class="<?php if((strpos($request_uri,"about-us")!==false)){echo "selected";}?>"><a href="/about-us.html">About</a></li> </ul>