我有一個<header>
- 當窗口尺寸太小而不能顯示圖像和下面的標題時,我保留position: fixed;
的元素。當滾動圖像時,header
應該正常顯示在圖像下方,因此設置position: static
。
請參閱本演示: http://experience.sap.com/designservices/work/see-how-design-services-transformed-shell
我用一個簡單的jQuery腳本:
function fixedBar() {
if ($('#h1').length > 0) {
var offsetTitle = $('#h1').outerHeight();
var endImage = $('span.featured-img').offset().top + $('span.featured-img').outerHeight();
if ($(window).height() + $(window).scrollTop() < endImage + offsetTitle) {
$('#h1').addClass('sticky-bottom');
}
else {
$('#h1').removeClass('sticky-bottom');
}
}
}
$(window).on('scroll resize', fixedBar);
隨着.sticky底
position: fixed;
bottom: 0;
這可以在Chrome中正常工作,但是在Safari中,<header>
在滾動速度過快時呈現錯誤的位置。
您可能必須調整窗口大小(垂直),直到<header>
固定在底部。如果您以極快的速度滾動(使用觸控板)並緩慢向上滾動,則<header>
(偶爾會)會顯示在摘要文本的頂部,而不是直接與頂部圖像相鄰。
有關如何解決此問題的任何想法?它肯定會受到視頻和旋轉木馬的影響,因爲如果沒有這些元素,問題就不會持續。我試圖用「<header>
-Element」上的-webkit-transform: translateZ(0);
「激活」硬件加速,但沒有成功。
感謝您的幫助!
Henning
此外,問題不會持續在Safari 8(OS X優勝美地)。 – hko