body元素上的Jquery Scrolltop()每次都在Chrome中返回0

时间:2015-08-13 09:49:56

标签: jquery google-chrome scrolltop

我在body元素上使用jQuery scrollTop()在body滚动特定高度后在页面顶部显示一个菜单栏。这在FF中有效,但在chrome scrollTop中总是返回零。

这是我的jquery:

var j = jQuery.noConflict(); //Use j instead of $ for firing jQuery library's.
function goToScrollTop() {
    j("body").scrollTop(0);
}

( function(j) {

    j(document).ready(function(){

        var scrollHeight = j("body").scrollTop();
        j("#resultPageMenuBar").hide(); //Hide the result page menu bar

        j("body").scroll(function(){ //on scroll of the result page 

       scrollHeight = j("body").scrollTop();
     //scrollHeight is 0 always in chrome
        if( scrollHeight > 160){...

CSS:
    .resultPageMenuBarInnerDiv {    
    width: 100%;
    display:none;
    top: 0px;   
    left: 0px;
    position:fixed; 
    z-index:6;  
    }   

JSP:
    <div id="resultPageMenuBar" class="resultPageMenuBarInnerDiv" >

请提供帮助,因为可用的解决方案不起作用。谢谢!

1 个答案:

答案 0 :(得分:0)

使用document代替body

j(document).scrollTop()

https://jsfiddle.net/uv1d4o7f/