2012-03-14 9 views
0

ここに私のコードの例があります。クリックするとfadeIn()が上にジャンプします。

$("#slideshow img").on("click", function (e) { 
    $(".fullimage").hide(); 
    var next = $(this).next(); 
    if (next.length > 0) { 
     next.fadeIn(1000); 
    } else { 
     $("#slideshow img:first-child").fadeIn(1000); 
    } 
    e.preventDefault(); 
}); 

私はshow()fadeIn()を変更した場合、画像のトップへfadeIn()私のページジャンプは、それが正常に動作。その原因を教えてください。

+0

からの要求に応じて答えに移行 –

+3

おそらく何かが 'fadeIn'シナリオで壊れてしまい、' e.preventDefault() 'は決して起こらないでしょう。そして、デフォルトのアクションはリンクをたどって'# 'と言うことです。ページの上部。要素が薄れていることが、最初にスクロールしているページの主な原因であり、フェード中に絶対的に配置することで、スクロールの高さが失われるなど、他の説明があります。この問題は、エラーを再現することができる例示的なコンテキストがなければ解決するのが難しい。本質的にはフェードアウトの話はありません。 –

+0

私は同じと思います。 '#'を 'javascript:;'または 'javascript:void(0)'に置き換えてください。 – Oybek

答えて

1

おそらく次のようなものが

  • Aに起こっている:e.preventDefault()が発生しないように、何かが、fadeInシナリオで壊し、およびデフォルトのアクションはここ#言うには、リンクをたどるするかもしれません、それはページの上部に飛び出るような外観になります。

  • B:退色している​​要素自体が、最初にスクロールしたページの主な原因であり、フェード中に絶対配置すると、スクロールの高さが失われます。

もともとコメントとして掲載さが、ページのHTMLコードは何ですか?OP

関連する問題