导航保持在当前页面中突出显示

时间:2010-12-01 21:04:06

标签: jquery hover highlight

我的问题是下一个,我在jQuery 中有一个动画导航,这是一个绿色滑块,当悬停< li> 标签。

当是当前页面时,高光状态是保持向下,但当我mouseOut它返回到顶部时,这就是自然行为。

我该怎么知道如何告诉jQuery“if”是$ current slide,不要mouseOut

也许你可以查看代码better in the website

我有一个变量。

$ 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);

修改 好的,我从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 个答案:

答案 0 :(得分:2)

您可以通过在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');
  }
 }

我的代码可能不正确(只是像真正的快速键入psudo)但如果您选择的ID是与页面匹配的ID,它应该禁用任何悬停/释放操作。这样它就会保持“未动画”。

修改

由于你在使用它的PHP方面遇到了麻烦:

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

编辑更多......

好的,您似乎无法添加

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

在正确的地方。我会把它放到你的主体中,只要它在你打开<body>时就在主页面上。我希望有所帮助,我开始觉得你正试图破解这不知道任何PHP或JavaScript。

如果你喜欢这个答案,请标记为'回答'(绿色复选标记)谢谢..