【问题标题】:How to make a floating sidebar continue floating while ajax content is being loaded加载ajax内容时如何使浮动侧边栏继续浮动
【发布时间】:2012-05-17 12:22:25
【问题描述】:

我是一个真正的 js 菜鸟,所以问题如下。

我有浮动侧边栏,当它到达页脚时会停止浮动。 js代码如下:

$(window).load(function(){
    $(function() {
        var top = $('#sidebar').offset().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0));
        var footTop = $('#footer').offset().top - parseFloat($('#footer').css('marginTop').replace(/auto/, 0));

        var maxY = footTop - $('#sidebar').outerHeight();

        $(window).scroll(function(evt) {
            var y = $(this).scrollTop();
            if (y > top) {
                if (y < maxY) {
                    $('#sidebar').addClass('fixed').removeAttr('style');
                } else {
                    $('#sidebar').removeClass('fixed').css({
                        position: 'absolute',
                        top: (maxY - top) + 'px'
                    });
                }
            } else {
                $('#sidebar').removeClass('fixed');
            }
        });

在我实现 ajax 分页和内容加载之前,这工作得很好。 仅当我查看第一页时,侧边栏才会滚动,当通过 ajax 加载第二页时,侧边栏不会滚动。你可以看到它here

您有什么想法我需要更改代码以使其按我想要的方式工作吗?

【问题讨论】:

  • ajax成功后再次调用滚动函数
  • 怎么做?我不懂js

标签: javascript jquery ajax sidebar sticky


【解决方案1】:

问题只是你只初始化了一次maxYfootTop。当您扩展文档时,它们需要更改。您可能会在每次滚动时重新计算它们。

【讨论】:

  • 你能详细解释一下我该怎么做吗?
【解决方案2】:

这个可能会帮助您找到您正在寻找的东西。

http://cubiq.org/dropbox/followalong/

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 2013-06-30
    • 2013-02-19
    • 2016-12-20
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多