Chrome中的粘性顶部条形图渲染问题
Sticky top bar rendering issue in Chrome
让我切入正题。它在这个网站上:http://www.smb.nu/wip/kampanj/
当滚动过去时,带有链接的白色条应该粘在顶部,这种效果可以通过一些简单的jQuery:来实现
$(window).scroll(function() {
$('#floater').toggleClass('sticky', $(window).scrollTop() > 129);
$('#quote').toggleClass('sticky', $(window).scrollTop() > 129);
});
到目前为止,一切都很好(我相信)。css类看起来是这样的:
#floater.sticky {
position: fixed;
top: 0;
z-index: 2;
}
div#quote.sticky {
padding-top: 78px;
}
这在Firefox(OS X和Windows)中运行得很好,甚至在IE(喘息!)中也是如此。然而,在Chrome(OS X和Windows)以及Safari(OS X)中,它会不时闪烁、消失和重新出现。尽管Chrome的网络检查员告诉我它就在那里(截图)。
到底发生了什么事?我是不是偶然发现了一个定位固定的WebKit渲染错误(似乎极不可能),还是犯了一些初学者的基本错误?还是完全是别的东西?
添加:
-webkit-backface-visibility:hidden
到父容器应该可以做到这一点。
当您移除-webkit过滤器时:blur(0px);在#uberwrapper之外,标头功能正常。
我用chrome控制台上的-webkit-transform: translateZ(0);
修复了它。。。不要问我为什么,我认为它触发了一些gpu的计算,似乎可以修复它。但这是一个肮脏的变通方法,可能在不久的将来会崩溃。
这可以通过使用纯css来实现,为什么需要jquery?
http://jsfiddle.net/SRpA4/
.header-cont {
width:100%;
position:fixed;
top:0px;
height:50px;
background-color:#C00;
}
我认为chrome最近可能对其呈现位置的方式进行了更改:已修复。我不知道他们做了什么,也不知道为什么它不适合你,但我确实有一个可能更好的解决方案,因为它也适用于手机(许多手机不支持固定定位)。
jQuery
$(window).scroll(function() {
if ( $(window).scrollTop() > 129 ) {
var scrollTop = $(window).scrollTop();
$('#floater').addClass('sticky').css('top',scrollTop);
}
else { $('#floater').removeClass('sticky'); }
});
CSS
#floater.sticky {
position: absolute;
top: 0;
z-index: 2; }
这似乎是一个错误。#uberwrapper的-webkit-filter: blur(0px);
似乎导致了这个问题。
不知道背后的确切原因。但一个简单的解决方案是删除-webkit-filter: blur(0px);
- Chart.js 2.1.2条形图动画问题
- 从数组在d3中创建条形图时出现问题
- 为条形图定制Chart new.js的问题
- d3.js条形图问题
- 重绘后悬停在 ChartJS 条形图上的问题
- 规范化堆叠条形图绘图问题.无论数据如何,所有矩形均等划分
- 更新 D3 条形图时调用 svg 元素的宽度的问题
- 高图表条形图布局问题
- 使用交叉过滤器在 dc js 中对条形图的数据进行分组时遇到问题
- 条形图 d3.js 的颜色出现问题
- D3堆积条形图添加数据标签并解决D3标签放置问题
- 使用 D3 网格问题和控制台错误的分组条形图
- 使用 D3 对齐问题的多/分组条形图
- D3 分组条形图创建问题
- Dojo图表问题:使用数组的条形图(ClusteredColumns)
- JQPlot渲染垂直堆叠条形图和水平图例时出现问题
- Chrome中的粘性顶部条形图渲染问题
- 流程图问题连接条形图和线形图
- 谷歌条形图显示日问题
- Chartkick Rails 4条形图问题与多个图表