Wordpress菜单项悬停

时间:2014-03-24 15:03:13

标签: php jquery css wordpress menu

我正在尝试创建自定义下拉菜单。

我的代码如下:

<div id="header"> </div>

      <div class="layer1_col">
        <?php wdg::displayMenu('main'); ?>
      </div>

      <div class="programmingTable"></div>
      <div id="main">

wdg :: displayMenu(&#39; main&#39;);生成在wordpress后端创建的菜单,名为&#34; main&#34;,显然。因为我需要使用它,所以没有改变wdg。

我正在尝试编辑menu-item-12,当我在chrome中编辑网站时,这就是菜单的构建方式(这就是我如何进入菜单项-12)。

<ul id="menu-main" class=""><li id="menu-item-96" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-96"><a href="http://jouwfm.100200.nl/">NIEUWS</a></li>
<li id="menu-item-103" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-103"><a href="http://jouwfm.100200.nl/archief/">ARCHIEF</a></li>
<li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a>PROGRAMMERING</a></li>
<li id="menu-item-97" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97"><a href="http://jouwfm.100200.nl/vacatures/">VACATURES</a></li>
<li id="menu-item-102" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-102"><a href="http://jouwfm.100200.nl/adverteren/">ADVERTEREN</a></li>
<li id="menu-item-27" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27"><a href="http://jouwfm.100200.nl/contact/">CONTACT</a></li>
</ul>

而菜单项12不是真正的菜单项。它没有连接到它的链接,div(.programmingTable)将填充所有不同的帖子,但这不包括问题。)

我的css看起来像:

.programmingTable{
  display:none;
  margin-left: 10px;
  margin-right: 10px;
  padding: 0;
  height: 380px;
  line-height: 1.5em;
  background-color: #e3e3e3;
  position: absolute;
  z-index: 5;
  width: 934px;
  top: 87px;
  padding-left: 8px;
  padding-right: 8px;
  padding-top: 45px;
  border-bottom-left-radius: 8px;
  -moz-border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  -moz-border-bottom-right-radius: 8px;
  -webkit-box-shadow: 0 7px 9px rgba(50,50,50,0.41);
  -moz-box-shadow: 0 7px 9px rgba(50,50,50,0.41);
  box-shadow: 0 7px 9px rgba(50,50,50,0.41);
  background: -webkit-gradient(linear,0% 0,0% 90%,from(#d9d9d9),to(#fbfbfb));
  background: -webkit-linear-gradient(top,#d9d9d9,#fbfbfb);
  background: -moz-linear-gradient(top,#d9d9d9,#fbfbfb);
  background: -ms-linear-gradient(top,#d9d9d9,#fbfbfb);
  background: -o-linear-gradient(top,#d9d9d9,#fbfbfb);
}

#menu-item-12:hover .programmingTable{
  display:block;
}

还尝试使用不透明度,z-index。 z-index可以使用,但div的其余部分颜色不同。它看起来并不正确。

我已经尝试过使用jquery来实现它:

  jQuery('#menu-item-12').mouseover(

    jQuery(document).ready( function() {
      jQuery('.programmingTable').fadeIn(200)
    })
  );
  jQuery('#menu-item-12').mouseleave(

    jQuery(document).ready( function() {
      jQuery('.programmingTable').fadeOut(200)
    })
  );

这不起作用。我想是一半。它使项目淡入,然后再次淡出,一次在页面加载。当悬停在相关div上时,它没有做任何事情。

我几天来一直坚持这个问题,任何帮助都会受到赞赏。

关于我的意思的一个更好的例子是this site悬停在&#34;编程&#34;。

编辑:这是displayMenu上的课程

 static public function displayMenu( $name, $atts=array( ))
{
  // Getting/Setting the variablen
  extract( shortcode_atts( array( 'container'      => 'div',
                                  'containerid'    => '',
                                  'containerclass' => '',
                                  'menuid'         => '',
                                  'menuclass'      => '',
                                  'afterlabel'     => '',
                                  'beforelabel'    => '',
                                ), $atts
         ));

  wp_nav_menu( array( 'menu'            => $name,
                      'menu_id'         => $menuid,
                      'menu_class'      => $menuclass,
                      'link_before'     => $beforelabel,
                      'link_after'      => $afterlabel,
                      'container'       => $container,
                      'container_id'    => $containerid,
                      'container_class' => $containerclass,
                    ));
}

1 个答案:

答案 0 :(得分:0)

我很确定你的jQuery代码可以运行。

是否在.ready事件中调用了它?

另外,我会使用.mouseenter事件。

jQuery(document).ready(function() {
    jQuery('#menu-item-12').mouseenter(function() {
        doSomething();
    }).mouseleave(function() {
        doSomethingElse();
    });
})