2

シンプルな 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;
}

フェードイン機能:

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 の一部がこの問題を引き起こす可能性はありますか? 前もって感謝します

4

2 に答える 2

0

私はあなたが持っていたものを試しました...( のfadeInElement代わりにへの変更を差し引いたものfadeIn)、それは私にとってはうまくいきます。IE7 および FF3.5+ では、以前にスクロールしたのと同じ場所にとどまります...brスペースをシミュレートするタグを追加したところ、マウスオーバーでページがスクロールしませんでした。もっと HTML を投稿して、他に何か問題があるかどうかを確認できますか?

<a href="javascript: void(0)" onmouseover="fadeInElement('carpets','slow',void(0))"> Carpets</a>
于 2010-07-16T16:52:08.017 に答える
0

次のように、fadeIn の代わりに .animate() を使用してみてください。

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

于 2010-12-21T11:22:42.300 に答える