最近我一直在努力實現視差效果,並使其在移動版本中也有效。我的代碼的結構所看到如下模仿視差效果
<section class="parallax fullscreen-js">
<div class="section-inner">
<div class="section-background" id="background-four"></div>
<div class="section-content">
<h1 class="head-title">Web & Mobile Solutions</h1>
</div>
</div>
</section>
<section class="parallax fullscreen-js">
<div class="section-inner">
<div class="section-background" id="background-five"></div>
<div class="section-content">
<h1 class="head-title">Web & Mobile Solutions</h1>
</div>
</div>
</section>
它的其餘部分是在這個小提琴:https://jsfiddle.net/ksna2hae/1/
同時,我碰到一個網站誰整齊地實現了它和它的作品在移動真的很好,以及。該網站的鏈接是: http://www.elespacio.net但是,由於我沒有在jQuery或Javascript中擁有先進的知識,並且無法確定如何構建所需的接口,因此一直在進行着許多努力。以下是我與腳本的距離。
var windowHeight = $(document).height();
var windowWidth = $(document).width();
var didScroll;
var lastScrollTop = 0;
$(".page-index .fullscreen-js").css({
'height': windowHeight,
'width': windowWidth
});
$(".page-index > div").each(function(i) {
$(this).css({
'z-index': (i + 1)
});
});
$(".parallax:nth-child(2) .section-inner").css({
"transform": "translate3d(0, " + windowHeight + "px, 0)"
})
var inner = $('section .section-inner');
inner.not('section .section-inner:first, section:nth-child(2) .section-inner').css({
'visibility': 'hidden',
"transform": "translate3d(0, 0, 0)"
});
var didScroll;
var lastScrollTop = 0;
var delta = 5;
// var navbarHeight = $('header').outerHeight();
$(window).scroll(function(event) {
didScroll = true;
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
function hasScrolled() {
var st = $(this).scrollTop();
// Make sure they scroll more than delta
if (Math.abs(lastScrollTop - st) <= delta)
return;
if (st > lastScrollTop) {
// Scroll Down
$(".parallax:nth-child(2) .section-inner").css({
"transform": "translate3d(0, " + -windowHeight + "px, 0)"
})
console.log('Window has Scrolled Down');
} else {
// Scroll Up
if (st + $(window).height() < $(document).height()) {
console.log('Window has Scrolled Up');
}
}
lastScrollTop = st;
}
我願意做的是,當我滾動可見div.section-inner
獲取的由我們滾動量減少的transform3d Y
值,並在同一時間值被添加到其兄弟div.section-inner
基本上,同時滾動我們逐漸隱藏屏幕上的div,並通過增加Y-value of transform3D
的值來揭示下一個.section-inner
。
我試過不同的視差插件,如視差js,恆星js和scrollorama但沒有工作。不過,在開始分析上述鏈接的代碼時,我意識到有一種方法可以欺騙移動設備上發生的故障,並且它可以模仿視差效果。在同一時間,它將解決許多未來在移動平臺上進行視差滾動的問題。
在此先感謝!如果我想