English 中文(简体)
菜单在 Firefox 上效果不好
原标题:Menu not working very well on Firefox

我有 HTML 代码 :

<ul class="navigation-links">
    <li class="link-item">
        <img src="images/new-menu/menu-item_04.png" width="150" height="41" alt="" />
        <div style="display: none" class="sub-menu">
            <div class="sub-col">
                <img src="images/new-menu/home.png" width="46" height="14" alt="" />
                <ul>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                </ul>
            </div>
            <div class="sub-col">
                <img src="images/new-menu/home.png" width="46" height="14" alt="" />
                <ul>
                     <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                </ul>
            </div>
            <div class="sub-col">
                <img src="images/new-menu/sataer.png" width="124" height="17" alt="" />
                <ul>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
              </ul>
          </div>
            <div class="clear"></div>
        </div>
    </li>
    <li class="link-item">
        <img src="images/new-menu/menu-item_03.png" width="154" height="41" alt="" />
        <div style="display:none" class="sub-menu index-menu-col2">
            <div class="sub-col">
                <img src="images/new-menu/decor.png" width="53" height="15" alt="" />
                <ul>
                  <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
              </ul>
          </div>
            <div class="sub-col">
                <img src="images/new-menu/acc.png" width="94" height="15" alt="" />
                <ul>
                  <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
              </ul>
          </div>
            <div class="sub-col">
                <img src="images/new-menu/out-decor.png" width="120" height="17" alt="" />
                <ul>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
              </ul>
          </div>
            <div class="clear"></div>
        </div>
    </li>
    <li class="link-item">
        <img src="images/new-menu/menu-item_02.png" width="152" height="41" alt="" />
        <div style="display: none" class="sub-menu index-menu-col3">
            <div class="sub-col">
                <img src="images/new-menu/lighting.png" width="35" height="16" alt="" />
                <ul>
                  <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
              </ul>
          </div>
            <div class="sub-col">
                <img src="images/new-menu/electric.png" width="106" height="19" alt="" />
                <ul>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
                    <li>item</li>
              </ul>
          </div>
          <div class="clear"></div>
        </div>
    </li>
    <li class="link-item"><img src="images/new-menu/menu-item_01.png" width="151" height="41" alt="" /></li>
</ul>

和这个 JavaScript 代码 :

$(document).ready(function(e) {
$(".link-item").hover(function(e) {
    $(this).children(".sub-menu").slideDown("slow");
});
$(".link-item").mouseleave(function(e) {
    $(this).children(".sub-menu").slideUp("fast");
});

当我打开Firefox的这个页面并尝试其中的菜单时, 它会变得很奇怪。 尖尖菜单会滑下来, 并不断往上滑动 。

"http://www.mfrsht.com/demo/demo.php" rel=“nofollow” >DEMO PAGE

最佳回答

看起来您在链接下有一些“空”区域, 导致菜单上下移动。 您可以尝试将菜单上移, 这样空区域不会被滑过, 从而导致“ mouse left” 功能被执行 。

问题回答

问题在于您只提供了一个函数 hover () 。 这将在 mouseenter mouseleft 上执行。 您应该给它两个函数, 每个事件一个。 请试一下 :

$(document).ready(function(e) {
    $(".link-item").hover(
        function(e) { $(this).children(".sub-menu").slideDown("slow"); },
        function(e) { $(this).children(".sub-menu").slideUp("fast"); }
    );
});

嗯,是的。 悬浮函数需要两个参数, 一个是鼠标的参数, 另一个是鼠标的参数, 但是你把鼠标放出悬浮之外。 尝试这样...

$(document).ready(function(e) {
  $(".link-item").hover(function(e) {
    $(this).children(".sub-menu").slideDown("slow");
  },
  function(e) {
    $(this).children(".sub-menu").slideUp("fast");
  })
});

尝试 :

$(document).ready(function(e) {
    $(".link-item").mouseover(function(e) {
        $(this).children(".sub-menu").stop().slideDown("slow");
    }).mouseleave(function(e) {
        $(this).children(".sub-menu").stop().slideUp("fast");
    });
});

您需要防止动画队列累积, 尝试类似的方式 :

$(document).ready(function(e) {
$(".link-item").hover(function(e) {
    $(this).children(".sub-menu").stop().slideDown("slow");
});
$(".link-item").mouseleave(function(e) {
    $(this).children(".sub-menu").stop().slideUp("fast");
});




相关问题
CSS working only in Firefox

I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....

image changed but appears the same in browser

I m writing a php script to crop an image. The script overwrites the old image with the new one, but when I reload the page (which is supposed to pickup the new image) I still see the old one. ...

Firefox background image horizontal centering oddity

I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签