視差スクロール サイトに左右の動きを構築しようとしています。サイズ変更機能以外はすべて機能しています。サイズ変更機能は、ビューポートが現在オンになっている .item だけでなく、幅全体のサイズを変更しているようです。これにより、要素を移動するにつれて徐々に悪化する要素の奇妙なシフトが発生します。
JavaScript は次のとおりです。
function scrollToPosition(element) {
if (element !== undefined) {
$(".cont").scrollTo(element, 800, {
margin: true
});
}
}
$(document).ready(function() {
var posts = $('.item');
var position = 0; //Start Position
var next = $('#next');
var prev = $('#prev').hide();
next.click(function(evt) {
//Scroll to next position
prev.show();
scrollToPosition(posts[position += 1]);
if (position === posts.length - 1) {
next.hide();
}
});
prev.click(function(evt) {
//Scroll to prev position
next.show();
scrollToPosition(posts[position -= 1]);
if (position === 0) {
prev.hide();
}
});
$(window).resize(function () {
resizePanel();
});
});
function resizePanel() {
width = $(window).width();
height = $(window).height();
mask_width = width * $('.item').length;
$('#cont').css({width: width, height: height});
$('.item').css({width: width, height: height});
$('#mask').css({width: mask_width, height: height});
}