【问题标题】:Navigation stay Highlight if in current page如果在当前页面中,导航保持突出显示
【发布时间】:2011-05-18 18:21:50
【问题描述】:

我的问题是下一个,我得到了一个带有 jQuery 动画 的导航,当悬停 标记时会下降一个绿色滑块。 p>

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

我知道如何告诉jQuery“如果”是$当前幻灯片,不要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');}
 };

【问题讨论】:

    标签: jquery hover highlight


    【解决方案1】:

    您可以通过在 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 与页面匹配,它应该禁用任何悬停/释放操作。这样它就保持“无动画”。

    编辑

    因为你在它的 PHP 方面遇到了问题:

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

    编辑更多...

    好的,您似乎无法添加

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

    在正确的地方。我会把它放到你的正文中,只要它在你打开&lt;body&gt;时就在主页上。我希望这会有所帮助,我开始觉得你正在尝试破解这个不知道任何 php 或 javascript。

    如果您喜欢这个答案,请标记为“答案”(绿色复选标记)谢谢..

    【讨论】:

    • 非常感谢,对不起,我对编程很陌生,你能告诉我是否可以对 var 使用 PHP,例如: var currentPage = ""
    • 是的,这正是您可以为页面值执行的操作,除了正确的代码是 &lt;?php echo $current ?&gt;(您忘记了回显部分)。
    • 感谢您的帮助,还有更多,“currentPage”的 id 是幻灯片的 id,示例幻灯片 id:“SnInicio”,(this)的 id 是“nInicio” , 那么如何从值中删除 S 呢?感谢您的帮助
    • 我试过了,但没用.... var currentPage = ; var current = currentPage.replace(/^.(\s+)?/, "");
    • 要删除一段字符串,请参阅 substr 此处:php.net/manual/en/function.substr.php。 ;)
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多