2012-10-11 48 views
1

我想使用滚动功能,当有人滚动时会出现一个隐藏的“回到顶部”按钮。使用点击来取消功能?

$(window).scroll(function(){$("#top_btn").css("visibility", "visible");}); 

我也有自动滚动页面到指定锚点的按钮。 “返回顶部”按钮就是其中之一。它将页面滚动回顶部。点击时我也会让它消失,因为一旦你在页面的顶部,就不再需要它了。

问题是,滚动功能使“回到顶部”按钮出现,即使它滚动到顶部。我想让它消失,如果它被点击,并保持隐藏状态。

我想我的问题是我怎样才能取消原来的滚动功能,点击返回顶部按钮?

有些人建议我使用scrollTop函数来隐藏“回到顶部”按钮,但是有太多的跨浏览器问题。

基本上是有一些代码来取消功能?

对不起,新手问题,但我是新来jquery。

+0

你可以使用'window.pageYOffset'来检查你是否在页面顶部,并添加它作为你的滚动功能的条件? –

回答

1

我觉得像你想的香草JS scrollTop威力有跨浏览器的问题,但我认为jQuery应该没问题。如我错了请纠正我。

$(window).scroll(function() { 
    if ($(window).scrollTop() === 0) { 
     $("#top_btn").css("visibility", "visible"); 
    } 
    else { 
     $("#top_btn").css("visibility", "hidden"); 
    } 
); 
+0

感谢mayhewr。有效! :^)我会“投票”,但我没有代表。 –

+0

@ user1738825点击我的答案左侧的复选框,如果它的工作。这不需要代表! :) – mayhewr

3

下面是一些代码,将尽快被点击

var isScrollingToTop = false; 
$(window).scroll(function(){ 
    if(!isScrollingToTop && $(window).scrollTop()>0) 
     $('#scrollBtn').show(); 
    else 
     $('#scrollBtn').hide(); 
}); 
$('#scrollBtn').click(function(){ 
    isScrollingToTop = true; 
    $('body,html').animate({scrollTop: 0}, 800,function(){ 
     isScrollingToTop=false; 
    }); 
}); 

这里隐藏按钮例如的jsfiddle:http://jsfiddle.net/btesser/HXQX4/1/