当前位置:  开发笔记 > 前端 > 正文

使用-webkit-transform时,固定的位置不起作用

如何解决《使用-webkit-transform时,固定的位置不起作用》经验,为你挑选了5个好方法。

我使用-webkit-transform(和-moz-transform/-o-transform)来旋转div.还有固定的位置,所以div与用户一起缩小.

在Firefox中它工作正常,但在基于webkit的浏览器中,它已经破碎了.使用-webkit-transform后,固定的位置不再起作用!怎么可能?



1> 小智..:

该CSS转换规范解释了这种行为.具有变换的元素充当固定位置后代的包含块,因此位置:固定在具有变换的某些内容下不再具有固定行为.

它们在应用于同一元素时确实有效; 元素将被定位为固定,然后进行转换.


这是唯一有用且正确的答案.停止翻译父元素并翻译固定元素所属的子元素.这是我的小提琴:[JSFIDDLE](https://jsfiddle.net/daFalk/zremdore/1/)
如果我想转换固定元素怎么办?

2> Kyle..:

经过一番研究,出现了一个错误报告上的Chromium网站上关于这个问题,到目前为止Webkit的浏览器无法对这两种效应一起在同一时间呈现.

我建议在样式表中添加一些仅使用Webkit的CSS,并将转换后的div作为图像并将其用作背景.

@media screen and (-webkit-min-device-pixel-ratio:0) {
  /* Webkit-specific CSS here (Chrome and Safari) */

  #transformed_div {
    /* styles here, background image etc */
  }
}

所以现在你必须以老式的方式去做,直到Webkit浏览器赶上FF.

编辑:截至10/24/2012,该错误尚未解决.


这似乎不是一个错误,而是规范的一个方面,因为这两个效果需要单独的坐标系和堆叠顺序.如本答案所述.


更多年后,仍未解决.很伤心.
2017年8月30日,队长的日志.我们也遇到了奇怪的异常现象,这是很久以前其他船长所描述的.仍有待实施解决方案.
坐下来观看 - 我打赌它会活到10周年纪念日
根据[这个答案](http://stackoverflow.com/a/15256339/215384),它不是一个bug,而是规范的一部分.
这是我父亲的父亲警告过我的错误。
2019年1月:这个错误仍然很强烈
第2个千年第19年的第3个月,仍未解决
2018年2月:我们似乎遇到了某种古老的技术,没有人可以解释
2017年7月底 - 他们仍然不知道我是一个苏联间谍,铬`translate3d`与`fixed`仍然无法正常工作.注销.
2019年9月!

3> Jayden Lawso..:

对于那些发现他们的背景图片在Chrome中消失的人,因为背景附件存在同样的问题:已修复; - 这是我的解决方案:

// run js if Chrome is being used
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
    // set background-attachment back to the default of 'scroll'
    $('.imagebg').css('background-attachment', 'scroll');

    // move the background-position according to the div's y position
    $(window).scroll(function(){

        scrollTop = $(window).scrollTop();
        photoTop = $('.imagebg').offset().top;
        distance = (photoTop - scrollTop);
        $('.imagebg').css('background-position', 'center ' + (distance*-1) + 'px');

    });
}  



4> defligra..:

2016年8月,固定位置和动画/变换仍然是一个问题.对我有用的唯一解决方案是为子元素创建一个需要更长时间的动画.


不!这仍然是一个问题......提出问题的人可能已经找到了另一种解决方案 - 但我发现这个问题是有原因的.

5> yckart..:

对我有用的东西(有点hacky)是position:sticky

.fixed {
     position: sticky;
}


http://updates.html5rocks.com/2012/08/Stick-your-landings-position-sticky-lands-in-WebKit嗯是的。但是似乎没有很好的支持
推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有