我遵循了Code.tutsplus 上的 Parallax 教程,还看到了一些与此类似的其他内容。但是,由于某种原因,没有一个教程可以完美运行,因为总是在元素的顶部或底部创建一些空白区域。
因此,我决定更改代码以根据元素的高度和视差效果的速度来获取元素的“背景大小”属性。但它仍然无法正常工作并在底部创建空白空间。
请检查我的代码,让我知道可能出了什么问题:
$('.parallax').each(function(){
var $el = $(this),
speed = $el.data('speed'),
elHeight = $el.outerHeight(),
wHeight = $(window).height(),
elOffset = $el.offset().top;
//Taking into account the amount the background would move and putting that into
//background-size so there are no white spaces.
var extraSize = (elHeight*speed)+elHeight;
var percentage = (extraSize/elHeight)*100;
$el.css({'background-size': percentage+'%'+' '+percentage+'%'});
$(window).scroll(function() {
var diff = $(window).scrollTop() + wHeight - elOffset;
var yPos = -(diff*speed);
var coords = '50% '+ yPos + 'px';
$el.css({ backgroundPosition: coords });
});
});
这里也是css:
.parallax {
background-image: url('http://lorempixel.com/1366/500');
background-position: 50% 0;
background-repeat: no-repeat;
}
请让我知道我在这里做错了什么。谢谢