;(function($, jQuery) { const appendWrap = $('#newArrivalWrapper') let ajaxLock = false; let scrollType = 'first'; let scrollNow = 0; let prodMall = $('#mallID').val(); const loadingBox = `
`; var nowId = $('#newArricalNow').val(); ajaxLoading(nowId); function ajaxLoading(id) { ajaxLock = true if(scrollType === 'next') { appendWrap.append(loadingBox) } else if(scrollType === 'prev') { appendWrap.prepend(loadingBox) } jQuery.ajax( { async: true, url: '/lookbook/ajax/ajax_get_lookbook.php', type: 'POST', dataType: 'json', data: { id: id, prodMall: prodMall }, }).done(function(res) { appendWrap.children('.loading-box').remove() if(scrollType === 'next' || scrollType === 'first') { appendWrap.append(res.content) } else if(scrollType === 'prev') { appendWrap.prepend(res.content) $(window).scrollTop(appendWrap.offset().top + $(appendWrap.children()[0]).height()) } if(scrollType === 'first'){ appendWrap.attr('data-next', res['next']); appendWrap.attr('data-prev', res['prev']); } appendWrap.attr(`data-${scrollType}`, res[scrollType]); scrollType = 'next' }).fail(function(x, y, z) { console.log(x) }).always(function() { ajaxLock = false }) } $(window).on('scroll', function(e) { if($(this).scrollTop() >= scrollNow) { if(scrollType != 'first'){ scrollType = 'next' } } else { scrollType = 'prev' } scrollNow = $(this).scrollTop() const targetTop = appendWrap.offset().top const targetNext = appendWrap.attr('data-next'); const targetPrev = appendWrap.attr('data-prev'); if(!ajaxLock) { if(scrollType === 'prev' && scrollNow < targetTop && targetPrev) { ajaxLoading(targetPrev) } else if(scrollType === 'next' && scrollNow + $(window).height() >= targetTop + appendWrap.height() && targetNext){ ajaxLoading(targetNext) } } }).trigger('scroll') })($, jQuery)