【问题标题】:jQuery::when I use fadeIn() my page moves its focus!jQuery::当我使用 fadeIn() 时,我的页面会移动它的焦点!
【发布时间】:2010-07-16 16:09:03
【问题描述】:

我有一个简单的 HTML 页面,以及一些在鼠标悬停事件上使用 jQuery 的基本 $(#element).fadeOut 方法的 javascript。我也使用 $(#element).hide() 方法。

但是我的页面焦点转移了!含义:如果我向下滚动一点,并将鼠标悬停在元素(切换脚本)上,脚本执行得很好,但我的滚动条立即上升,我失去了滚动到的位置。

我该如何解决这个问题?

这是我的代码:

function swapElements(unfadeElement, how, callbackExecute)
{
    if (unfadeElement==swapper.active)
    return;

    if (how!="slow" && how!="fast")
    return;

    var fadeElement=swapper.active;

    $("#" + fadeElement).hide();
    $("#" + unfadeElement).fadeIn(how,callbackExecute);
    swapper.active=unfadeElement;
}

fadeIn 函数:

function fadeInElement(element, how, callbackExecute)
{
    //pre: how is "slow" or "fast"
    if (how!="slow" && how!="fast")
    return;
    $("#"+element).fadeIn(how, callbackExecute);
}

一个示例脚本调用:

<a href="javascript: void(0)" onmouseover="fadeIn('carpets','slow',void(0))"> Carpets</a>

编辑:添加了一些 HTML 代码

  <div id="menuDiv">
....................
                        <div id="menu1" class="menuDivLink">
                        <a href="javascript: void(0)" onmouseover="swapper.fadeIn('carpets','slow',void(0))"> Carpets</a>
                        </div>
                        <div id="menu2" class="menuDivLink">
                        <a href="javascript: void(0)" onmouseover="swapper.fadeIn('rugs','slow',void(0))">Rugs</a>
                        </div>
                        <div id="menu3" class="menuDivLink">
                        <a href="#" onmouseover="swapper.fadeIn('windows','slow',void(0))">Link1</a>
                        </div>
............
</div>

另外,我的一些 css 会导致这个问题吗? 提前致谢

【问题讨论】:

    标签: javascript jquery focus fadein


    【解决方案1】:

    我尝试了您所拥有的...(减去对 fadeInElement 而不是 fadeIn 的更改),它对我有用。在 IE7 和 FF3.5+ 中,它与之前滚动到的位置相同... 我刚刚添加了br 标签来模拟一个空间,并且页面没有在鼠标悬停时滚动。也许您可以发布更多 HTML 以查看是否有其他问题?

    <a href="javascript: void(0)" onmouseover="fadeInElement('carpets','slow',void(0))"> Carpets</a>
    

    【讨论】:

    • 尽管我讨厌使用它们,但我强迫自己在几个嵌套和排列的 div 上使用一个简单的表。嗯, - 它工作完美 - 焦点,重叠,一切。这意味着我应该回到关于那些 DIV 元素的 HTML 基础知识......
    【解决方案2】:

    尝试使用 .animate() 代替 fadeIn,类似

    .animate({ opacity: 1 }, 300, callBackFunction);

    【讨论】:

      猜你喜欢
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      相关资源
      最近更新 更多