jQuery,动画滚动到顶部,之后它一直把我扔到顶端

时间:2012-08-18 07:55:17

标签: jquery

所以使用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();
});

3 个答案:

答案 0 :(得分:3)

如果您的div的ID为#div,为什么要在javascript中定位#naVrh

此外,将某个函数绑定到事件是我们通常只尝试执行一次的事情,并且每当该事件发生时,该函数都将被执行。

您正在滚动事件中绑定click事件,以便每次滚动时都绑定click事件,或者换句话说,当用户触摸鼠标滚轮时,您将点击事件绑定几百次,这是一个出于显而易见的原因,这真的很糟糕。

尝试类似:

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

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

FIDDLE

答案 1 :(得分:0)

http://www.electrictoolbox.com/jquery-scroll-top/ 请参阅那里以获取正确的语法

答案 2 :(得分:0)

$("#naVrh").unbind("click").click(myHandler);

我认为您多次致电该活动。检查你的代码。