【问题标题】:Position Fixed and Backface Visibility位置固定和背面可见性
【发布时间】:2014-03-20 23:32:00
【问题描述】:

我有三个分区区域,其中我有一个标题元素和一个位置固定的子项。

当用户滚动时,我希望下一部分覆盖上一部分,包括其固定的子部分。

我通过使用背面可见性在 Chrome 中工作:

-webkit-backface-visibility: hidden;    
-moz-backface-visibility: hidden;   
-ms-backface-visibility: hidden;    
backface-visibility: hidden;

但在FF中,固定的物品不再是固定的。看看我的 jsfiddle http://jsfiddle.net/7KjXm/5/

这是预期的行为吗?有跨浏览器解决方案吗?还是JS要走的路?

谢谢....

【问题讨论】:

  • 你需要有固定位置的实际 HTML 内容吗?还是背景图片就足够了?
  • It's a bug,我认为你必须解决它
  • 背面可见性与您想要在这里实现的目标有什么关系?
  • @az101 Chrome (Webkit) 在这种情况下表现错误。 backface-visibility 属性在这种情况下应该不起作用,因为没有 CSS 3D 变换。我想我知道您要实现的目标,但目前 CSS 无法做到这一点,因为无法根据元素的屏幕位置更改样式。位置属性有一个名为“sticky”的新值,但目前仅在 Safari 6.1+ 中支持。如果您更喜欢 JS 或 CSS 解决方案,请告诉我们?
  • 谢谢大家;所以规范说“‘backface-visibility’属性决定了转换元素的‘背面’在面对观察者时是否可见。” - 这显然适用于两种浏览器。 Firefox 删除任何固定定位的事实是一个错误,但 Chrome 处理这些固定元素的方式也不正确(?)。因为​​它们应该始终相对于视口固定 - 不应该有新的堆叠顺序应用于具有“背面可见性”的包含元素。对吗?

标签: javascript html css


【解决方案1】:

我设法解决了您正在寻找的效果。不幸的是,似乎不可能只使用 css (yet)。

Here 是我的解决方案,它使用 jquery 并修改了原始页面的 css。我切换到数字而不是彩色元素并更改了大小。

我用于假浮动元素的 javascript(允许在视图移开时隐藏它们):

$(function(){
    elem = $('.fixeditem');
    win  = $(window);
    wrap = $('<div>').css({
        width: elem.width(),
        height: elem.height()
    });
    elem.wrap(wrap);
    win.scroll(function() {
        elem.each(function(index, element){
            element = $(element);
            var offset = element.parent().offset().top;
            element.css('top', win.scrollTop() + 40 - offset);
        });
    });
});

我针对这个特定示例的自定义 css:

html, body{
    height: 100%;
}

.item {
    min-height:100%;
    background-color: white;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.header {
    position: relative;
    background-color: green;
    padding: 5px;
    z-index: 2;
}

.fixeditem {
    position: relative;
    top: 10%;
    left: 50%;
    z-index: 0;
}

彩色更新代码:http://jsfiddle.net/8F2Zc/4/

希望这会有所帮助!

【讨论】:

  • 如果你想改变物体与顶部的距离,那么将 css 函数中的40 更改为你喜欢的任何值。要添加百分比值,您还需要检索窗口大小。
  • 谢谢泰勒!这与我最终的 JS 解决方案非常相似。在用户滚动时计算每个固定元素的顶部位置。
  • 不客气。我发现的唯一问题是它在我的平板电脑上看起来很难看(我使用的是 chrome)。希望这仍然对你有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多