1

因此,我使用 jQuery 制作了一个 div,您单击该 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 为#div,您为什么要#naVrh在您的 javascript 中定位?

此外,将某个函数绑定到一个事件是我们通常只尝试做一次的事情,只要该事件发生,该函数就会被执行。

您在滚动事件中绑定点击事件,因此每次滚动发生时您都绑定点击事件,或者换句话说,当用户触摸鼠标滚轮时您绑定点击事件几百次,这是一个非常糟糕的主意出于显而易见的原因。

尝试类似:

$(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

http://www.electrictoolbox.com/jquery-scroll-top/ 正确语法见那里

于 2012-08-18T08:02:15.840 回答
0
$("#naVrh").unbind("click").click(myHandler);

我认为您多次调用该事件。检查你的代码。

于 2012-08-18T08:08:03.780 回答