1

そのため、jQuery を使用して div を作成し、クリックするとページの上部に移動しますが、下にスクロールしたい場合は、上部に移動し続けます。誰でもこれを修正する方法を知っていますか?

これが私のコードです:

HTML :

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

CSS :

#div
{

    background: url(slike/vrh.png) no-repeat;
    width: 45px;
    height: 45px;
    position: fixed;
    top: 93%;
    right: 1%;
    display: none;
    cursor: pointer;
}

jQuery :

$(window).scroll(function()  {

  if($(window).scrollTop() > 0)  {

      $("#naVrh").show();
      $("#naVrh").click(function()
      {
           $("html, body").animate({scrollTop:0})
      });

  } 
  else
       $("#naVrh").hide();
});
4

3 に答える 3

3

div の ID が の場合、javascript で#divターゲットを設定するのはなぜですか?#naVrh

また、特定の関数をイベントにバインドすることは、通常 1 回だけ行おうとするものであり、そのイベントが発生するたびに関数が実行されます。

スクロールイベント内でクリックイベントをバインドしているため、スクロールが発生するたびにクリックイベントをバインドします。つまり、ユーザーがマウスホイールに触れたときにクリックイベントを数百回バインドします。これは本当に悪い考えです明らかな理由で。

次のようなものを試してください:

$(window).on('scroll', function() {
    $("#mydiv").toggle($(window).scrollTop() > 0);
});

$("#mydiv").on('click', function() {
    $("html, body").animate({scrollTop : 0}, 1000);
});​

フィドル

于 2012-08-18T08:33:00.680 に答える
0
$("#naVrh").unbind("click").click(myHandler);

イベントを複数回呼び出すと思います。コードを確認してください。

于 2012-08-18T08:08:03.780 に答える
0

http://www.electrictoolbox.com/jquery-scroll-top/ 正しい構文については、そこを参照してください

于 2012-08-18T08:02:15.840 に答える