0

我试图让我的侧边栏表现正常,直到发生一定量的滚动(它已经滚动超过第一个子div元素),然后修复到位。

作为测试,我尝试将其更改为空白。但它没有任何影响。

<script type="text/javascript">
    var side_offset_top = $('#side').offset().top;
    var side = function(){
        var scroll_top = $(window).scrollTop();
        if (scroll_top > side_offset_top) { 
            document.getElementById('side').innerHTML = ''; //blank to test
        } else {
        }
    };
    side();
    $(window).scroll(function() {
        side();
    });
});
</script>

我是 JavaScript 新手,所以我会感谢任何人帮助我解决这个问题。

4

1 回答 1

0

我猜你正在使用 jQuery,因为我看到了 $

代码的最后一行有一个额外});的,所以除非它是一个复制粘贴错误,否则你应该删除它。

然后尝试将代码放入 $(document).ready() 处理程序中。当您检查它的偏移量时,$('#side') 可能还没有在 DOM 中。

类似(未经测试):

$(document).ready(function(){
    var side_offset_top = $('#side').offset() && $('#side').offset().top;
    var side = function(){
        var scroll_top = $(window).scrollTop();
        if (scroll_top > side_offset_top) { 
            $('#side').html(''); // using jQuery .html
        }
    };
    side();
    $(window).on('scroll', function() { // consider using .on here instead
        side();
    });
});

编辑:哎呀!offset().top() 应该是 offset().top

于 2013-07-07T22:23:39.170 回答