Навигация остается выделенной, если на текущей странице - PullRequest
3 голосов
/ 02 декабря 2010

Ну, моя проблема в следующем, я получил навигацию с анимацией в jQuery , зеленый ползунок, который появляется при наведении на тег .

Когда текущая страница, состояние hightlight должно оставаться внизу, но когда я mouseOut, она возвращается наверх, это естественное поведение.

И что узнать, как я могу сказать jQuery, что «если» - это $ current slide, не mouseOut

Может быть, вы можете проверить код лучше на сайте

Я получил переменную.

$ current = текущая страница.

JQuery код:

 var navHover = function () {
  $("#S" + this.id).animate({top: '-40px'}, 300, 'swing')
  $("#A" + this.id).animate({paddingTop: '30px'}, 300, 'swing').animate({paddingTop: '45px'}, 300, 'swing')
  $("#I" + this.id).animate({top: '-10px'}, 300, 'swing').animate({top: '0px'}, 300, 'swing')
 }
 var navRelease = function () {
  $("#S" + this.id).animate({top: '-130px'}, 300, 'swing');
 }

 $('#navInside .topLevel').hover(navHover, navRelease);

EDIT: Хорошо, я получаю некоторую помощь от ircmaxell

Я добавил, сделал это после моего CSS в заголовке, чтобы я мог получить значение currentPage правильно.

<script type="text/javascript">
var currentPage = "<?php echo substr($current, 1) ?>";
</script>

Затем измените этот код на оператор if.

 var navRelease = function () {
 if(this.id != currentPage){
 $("#S" + this.id).animate({top: '-130px'}, 300, 'swing');}
 };

1 Ответ

2 голосов
/ 02 декабря 2010

Вы можете легко сделать это, установив флаг в вашем JS, что-то вроде:

var currentPage = "nInicio"

Затем в navHover:

 var navHover = function () {
  if(this.id != currentPage){
   $("#S" + this.id).animate({top: '-40px'}, 300, 'swing')
   $("#A" + this.id).animate({paddingTop: '30px'}, 300, 'swing').animate({paddingTop: '45px'}, 300, 'swing')
   $("#I" + this.id).animate({top: '-10px'}, 300, 'swing').animate({top: '0px'}, 300, 'swing')
  }
 }
 var navRelease = function () {
 if(this.id != currentPage){
  $("#S" + this.id).animate({top: '-130px'}, 300, 'swing');
  }
 }

Мой код может быть неправильным (просто набрал его псевдо как очень быстро), но он должен отключить любые действия при наведении / отпускании, если выбранный вами идентификатор соответствует странице. Таким образом, он остается «не анимированным».

EDIT

Поскольку у вас возникли проблемы с PHP-стороной:

<script>
  var current = "<?php echo substr($current, 1) ?>";
</script>

РЕДАКТИРОВАТЬ ДАЖЕ БОЛЬШЕ ...

Хорошо, похоже, у вас возникли проблемы с добавлением

<script>
  var current = "<?php echo substr($current, 1) ?>";
</script>

в нужном месте. Я бы добавил это в ваш основной текст, если только он находится на главной странице, когда вы открываете <body>. Я надеюсь, что это помогает, я начинаю чувствовать, что вы пытаетесь взломать это, не зная ни php, ни javascript.

Если вам нравится этот ответ, пожалуйста, отметьте его как «ответ» (зеленая галочка), спасибо ..

...