CSS 固定/绝对定位 <div>

标签 css compass-sass

如何放置一个 div position: fixed; bottom: 0; 直到滚动到达页脚,然后是 position: absolute; bottom: 0; 内容 div.

我希望 div 始终贴在视口(viewport)的底部,然后贴在内容 div 的底部,而不是盖住我的页脚。

compass/sass 解决方案的奖励积分!

最佳答案

this fiddle (我用你的作为基础,尽管它是 fork 的)你可以看到一个你想要的工作示例,假定页脚高度为 100 像素。

这是需要的 JS:

$(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 100) {
        $('div#scrolled').css({'bottom' : '100px'});
    } else {
        $('div#scrolled').css({'bottom' : '0px'});
    }
});

它在滚动时检查滚动是否到达底部加上 100 像素,如果是,它将固定元素的底部设置为 100 像素。不好的一点是它不是渐进的,当页脚出现时固定元素跳转。如果您希望页脚在用户到达绝对底部时弹出,则不能只删除 if 语句中的 100 : if ($(window).scrollTop() + $(window).height() >= $ (文档).height()) { ...

更新:

Here是上述代码的“渐进式”版本。

$(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 100) {
        var bottom = 100 - ($(document).height() - ($(window).scrollTop() + $(window).height())) + "px";
        $('div#scrolled').css({'bottom' : bottom});
    } else {
        $('div#scrolled').css({'bottom' : '0px'});
    }
});

现在,当用户滚动距离底部不到 101px 时,不再将底部更改为 100px,而是根据滚动计算固定元素应具有的位置

希望对您有所帮助!

关于CSS 固定/绝对定位 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998908/

相关文章:

html - 两个div同一行: why overflow: hidden; causes vertical offset?

css - 使用 Grunt Compass 任务生成没有调试信息的生产 CSS 代码

sass - SASS/Compass 可以将 foo.scss 编译为 foo.min.css 和 foo.dbg.css 吗?

css - Sass 和 Compass 中的背景图片路径

jquery - 从 onclick 事件中排除响应数据表 +

java - 关于动态设置图像的 IE 问题

css - 我需要什么代码才能只有这些按钮之一?

jquery - 带有 maxcdn css 的选项卡面板不起作用

sass - 限制变量范围而不嵌套到子类或混入中?

compass-sass - 使用 SASS 变量作为 CSS `content` 属性的值