0
我想将视差效果应用于可放置在DIV内页面的任何位置的背景图像。jquery视差位置计算
我试图找到“完美”的方程式,以便在文档滚动时完全(从上到下)看到背景图像,同时始终充满图像填充DIV。
最后,我只是想要一个页面中间的视差图像,无论图像高度和窗口高度如何,总是可以工作。
这里我的脚本(它的工作原理,但我的计算不照顾完全的窗口高度和图像高度...)
$("#inner-container").on("scroll", function() {
var scrollTop = $(this).scrollTop();
var windowHeight = $(window).height();
$('.parallax-container').each(function() {
var parallaxDivPosition = $(this).position().top;
var parallaxHeight = $(this).height();
var scrollPosition = scrollTop + windowHeight;
if (parallaxDivPosition <= windowHeight && parallaxDivPosition+parallaxHeight >= 0) {
var parallaxFactor = parallaxHeight/windowHeight;
var parallaxShift = parallaxHeight*parallaxFactor;
var parallaxImgPos = parallaxDivPosition-windowHeight;
var imagePosition = Math.round(parallaxImgPos-parallaxShift)*0.2;
$(this).children().css('-webkit-transform', 'translate3d(0px, '+imagePosition+'px, 0px)');
}
})
})
这里提琴:http://fiddle.jshell.net/uccE4/12/