Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выделение активной вкладки меню CSS (https://javascript.ru/forum/dom-window/47655-vydelenie-aktivnojj-vkladki-menyu-css.html)

Webdev 02.06.2014 14:30

Выделение активной вкладки меню CSS
 
Есть горизонтальное меню сss.

<nav>
<ul id="main-nav">
<li><a class="red" href="#navTab1">1</a></li>
<li><a class="green" href="#navTab2">2</a></li>
<li><a class="blue" href="#navTab3">3</a></li>
<li><a class="yellow" href="#navTab4">4</a></li>
<li><a class="maroon" href="#navTab5">5</a></li>
</ul>
</nav>

Необходимо чтобы при клике на вкладку она получала класс red, а та, у которой был класс red раньше, получала цвет вкладки, по которой кликнули.

т.е. кликаем на 3 - 3 вкладка становится red, 1 вкладка становится blue

рони 02.06.2014 15:31

Webdev,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   .red {
     background: red;
   }
   .green {
     background: green;
   }
   .blue {
     background: blue;
   }
   .yellow {
     background: yellow;
   }
   .maroon {
     background: maroon;
   }
   a{
     width: 50px;
     display: inline-block;
   }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  	$(function ()
  	  {
  	    var cls = 'red', indx = 0, $a = $('.main-nav a');
  	    $a.click(function ()
  	      {
  	        var temp = this.className;
  	        $a.eq(indx)[0].className = temp;
  	        this.className = 'red';
  	        cls = temp;
  	        indx = $a.index(this)
  	      }
  	    )
  	  }
  	)
  </script>
</head>

<body>
<nav>
 <ul class="main-nav">
 <li><a class="red" href="#navTab1">1</a></li>
 <li><a class="green" href="#navTab2">2</a></li>
 <li><a class="blue" href="#navTab3">3</a></li>
 <li><a class="yellow" href="#navTab4">4</a></li>
 <li><a class="maroon" href="#navTab5">5</a></li>
 </ul>
 </nav>
</body>

</html>

Webdev 02.06.2014 15:38

Спасибо, а как это будет выглядеть на чистом javascript? я только начал учиться и еще не знаю jquery

рони 02.06.2014 16:10

Webdev,
:-?
http://learn.javascript.ru/
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   .red {
     background: red;
   }
   .green {
     background: green;
   }
   .blue {
     background: blue;
   }
   .yellow {
     background: yellow;
   }
   .maroon {
     background: maroon;
   }
   a{
     width: 50px;
     display: inline-block;
   }

  </style>
  <script>
  	window.onload = function ()
  	{
  	  var cls = 'red', obj = document.querySelector('.red'), main = document.querySelector('.main-nav');
  	  main.onclick = function (event)
  	  {
  	    var el = event && event.target || window.event.srcElement;
  	    if ("A" == el.tagName) {
  	      var temp = el.className;
  	      obj.className = temp;
  	      el.className = 'red';
  	      cls = temp;
  	      obj = el;
  	    }
  	  }
  	}
  </script>
</head>

<body>
<nav>
 <ul class="main-nav">
 <li><a class="red" href="#navTab1">1</a></li>
 <li><a class="green" href="#navTab2">2</a></li>
 <li><a class="blue" href="#navTab3">3</a></li>
 <li><a class="yellow" href="#navTab4">4</a></li>
 <li><a class="maroon" href="#navTab5">5</a></li>
 </ul>
 </nav>
</body>

</html>


Часовой пояс GMT +3, время: 14:49.