Проблема с активным состоянием jQuery Lavalamp - PullRequest
0 голосов
/ 15 февраля 2012

Добрый день, мне трудно перевести навигационные ссылки в активное состояние, когда пользователь нажимает на ссылку.У меня есть файл header.php, который содержит идентификатор nav и lavalamp.Header.php включен на каждой странице.Когда я нажимаю на ссылку «около» страницы, строка все еще остается на своей позиции по умолчанию, которая находится на «домашней» ссылке.Я запускаю это в php, если это поможет.

Благодарим вас за помощь ... Спасибо.

header.php состоит из следующих html:

<div id="nav" class="grid_9 push_3">
<ul class="lavaLamp" id="lavaLampLine">
        <li><a href="index.php">HOME</a></li>
    <li><a href="about.php">ABOUT US</a></li>
    <li><a href="product.php">SUPPORT</a></li>
    <li><a href="blog">OUR BLOG</a></li>
        <li><a href="contact.php">CONTACT US</a></li>
</ul><!-- end menu -->
</div><!-- end nav -->

CSS:

/ * Стили для всего меню LavaLamp * /

.lavaLamp {
    position: relative;
    height:15px;
    width:421px;
    margin:3px 0;
    padding:80px 0 0 0;
/* overflow: hidden; */
}
/* Force the list to flow horizontally */
.lavaLamp li {
    float:left;
    list-style:none;
}
/* Represents the background of the highlighted menu-item. */
.lavaLamp li.back {
    border-bottom:4px solid #3A7CB8;
    width:9px;
    height:15px;
    top:90px;
    position:absolute;
    z-index:8;
}

.lavaLamp li.back .left {
    border-bottom:4px solid #3A7CB8;
    height:15px;
    overflow:hidden;
 margin-right: 5px; /* 5px is the width of the rounded shape */
}
/* Styles for each menu-item. */
.lavaLamp li a {
    font-size:16px;
    font-weight:normal;
    text-decoration:none;
    display:inline;
    color:#095BA6;
    text-align:center;
    margin: auto 12px;
    display: block;
    float: left;
    cursor:pointer;
    outline: none;
    z-index:10;
    height:30px;
    position:relative;
}

.lavaLamp li a:hover, .lavaLamp li a:active, .lavaLamp li a:visited {
    border: none;
}
.active {
    border: none;
    color:#000000;
    font-weight:bold;
}

1 Ответ

2 голосов
/ 15 февраля 2012

Используйте оператор PHP if / else, чтобы добавить класс "current" к li, на котором вы находитесь.

что-то вроде:

<li <?php if(strpos($_SERVER["PHP_SELF"],"index.php") !== false) echo 'class="current'; ?>><a href="index.php" >HOME</a></li>

для каждого li, измените "index.php" на любое имя файла. Это довольно неэффективно ... вы также можете сделать это так:

<?php
$parts = Explode('/', $_SERVER["PHP_SELF"]);
$currentFile = $parts[count($parts) - 1];
?>

и затем в каждом LI вы можете сказать:

<li <?php if($currentFile == "index.php") echo 'class="current'; ?>><a href="index.php" >HOME</a></li>

(источник: http://www.scriptygoddess.com/archives/2007/07/13/use-php-to-get-the-current-pagefile-name/)

...