javascript - 固定位置元素实际上并没有在 Chrome 中固定

标签 javascript html css

Chrome 已经开始使用固定位置元素做一些非常奇怪的事情。基本上它仍然随着页面滚动,即使它被设置为固定的。仅通过链接到实时站点来解释是最简单的。

http://new.safetylineloneworker.com/?page_id=9

如果你在 firefox 或 hell 中查看它,即使是 IE,“Block 1 Block 2 Block 3”文本也能正常工作,一旦你将它滚动到屏幕顶部,它就会一直停留在屏幕顶部,直到你点击“释放”再往下一点。

在 Chrome 中查看它,它不仅比应有的时间更早地跳转到固定位置,而且还只是……滚动,即使它显然设置为固定位置。这真的是我见过的最奇怪的事情之一。

最佳答案

我注意到您正在使用转换。这就是导致问题的原因。

查看规范:The Transform Rendering Model

Specifying a value other than ‘none’ for the ‘transform’ property establishes a new local coordinate system at the element that it is applied to.

因此具有固定定位的元素将相对于具有转换的元素 - 而不是视口(viewport)

看看这个FIDDLE在 webkit 浏览器中查看实际效果

<div class="wpr">
    <div class="fixed"></div>
</div>

.wpr
{
    width: 200px;
    height:1000px;
    background: pink;
    position:relative;
    margin: 0 200px;
    -webkit-transform: translateX(0);
    transform: translateX(0);
}
.fixed
{
    width: 200px;
    height:200px;
    margin: 50px;
    position: fixed;    
    top:0;
    left:0;
    background: aqua;
}

关于javascript - 固定位置元素实际上并没有在 Chrome 中固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578427/

相关文章:

css - Div 向左浮动 : Long divs clearing?

html - 宽度不适用于 li 元素

css - 变量覆盖不完全覆盖

javascript - 未捕获的类型错误 : Object [object Object] has no method 'overlay'

javascript - MS edge 上奇怪的 css 转换动画

javascript - 将由脚本插入和生成的 div 定位到其他元素上

javascript - 在 .erb 文件中内联 <% f.submit %> 样式

html - 具有滚动功能的固定高度容器,可根据窗口高度调整大小

javascript - 如何使用 javascript 从博客 json-in-script 文件中获取 <img> 标签?

javascript - 在 document.ready 之后删除脚本包含标记是否总是安全的?