在你向上滚动的固定背景上方保持空间
Keep Space above a fixed background you scroll up
我有一个背景,当你通过JS向下滚动时,我将一个固定的类附加到它,这导致它成为一个固定的附件,但背景图像不会开始消失在内容后面,直到它达到顶部,我希望有一个小的空间说20 - 40px的空间在背景图像之上,而内容在它上面滚动。
您可以在http://jsfiddle.net/4VkBL/
的示例中看到这一点当页面开始时,背景上方有空间,但是当它到达滚动点时,背景触及顶部,我仍然希望在BG和页面顶部之间有空间。
#about-banner {
background-image: url('http://hearthable.com/img/hearthable/about/test.jpg');
width: 700px;
height: 325px;
background-repeat: no-repeat;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.about-fixed {
background-attachment: fixed;
}
$(document).ready(function () {
var top = $('#about-banner').offset().top - 20 - parseFloat($('#about- banner').css('marginTop').replace(/auto/, 0));
$(window).scroll(function (event) {
// what the y position of the scroll is
var y = $(this).scrollTop();
// whether that's below the form
if (y >= top) {
// if so, ad the fixed class
$('#about-banner').addClass('about-fixed');
} else {
// otherwise remove it
$('#about-banner').removeClass('about-fixed');
}
});
});
添加与您需要的空白相等的background-position
,您应该可以使用:
#about-banner {
background-position:0 40px;
/* ... */
}
同样,为了让它正常工作,你实际上不需要任何js。只需将background-attachment: fixed;
添加到横幅中;在这种情况下,您实际上也不需要您的top
iddiv。我更新了你的小提琴:http://jsfiddle.net/4VkBL/2/
你可以使用CSS的background-position作为about-fixed类。
.about-fixed {
background-attachment: fixed;
background-position: 8px 40px;
}
JSFiddle: http://jsfiddle.net/f95Qy/1/
相关文章:
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 保持状态打开”;在背景中”;.隐藏,但不要't在Angular UI中离开状态
- 如何在滚动/调整大小时保持背景图像覆盖屏幕
- 使用javascript更改背景图像时保持渐变不变
- 如何在全宽背景上保持100%的高度+纵横比,全宽背景由8个不同的“;棱镜”;图像
- 居中背景幻灯片自动调整保持纵横比
- CSS保持背景视频居中
- Cordova Android-在简历上保持背景
- 如何使背景图像的位置在所有分辨率下保持不变
- 将图像大小保持为可丢弃的背景
- 如何使用JQuery替换CSS背景图像并保持渐变
- 调整图像大小以填充背景,而不考虑页面高度和宽度(同时保持正确的比例)
- 网页使背景保持不变,直到向下滚动足够远
- 使用CSS缩放/矩阵不保持背景与元素对齐
- 全屏背景视频,并保持其居中
- 当模式打开时保持背景滚动
- 使用JavaScript使背景图像在滚动时始终保持不变(加上其他查询)
- 改变背景图像悬停和保持活跃
- 扩大悬停区域,同时保持背景颜色
- 在你向上滚动的固定背景上方保持空间