1
0
Fork 0
forked from mirror/pixelfed

Update timeline component, add lazy loading

This commit is contained in:
Daniel Supernault 2018-08-09 22:01:35 -06:00
parent 95fdf03d36
commit 55e033fdec
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -1,13 +1,54 @@
$(document).ready(function() { $(document).ready(function() {
$('.pagination').hide(); $('.pagination').hide();
$('.container.timeline-container').removeClass('d-none');
let elem = document.querySelector('.timeline-feed'); let elem = document.querySelector('.timeline-feed');
pixelfed.fetchLikes();
let infScroll = new InfiniteScroll( elem, { let infScroll = new InfiniteScroll( elem, {
path: '.pagination__next', path: '.pagination__next',
append: '.timeline-feed', append: '.timeline-feed',
status: '.page-load-status', status: '.page-load-status',
history: false, history: false,
}); });
infScroll.on( 'append', function( response, path, items ) { infScroll.on( 'append', function( response, path, items ) {
pixelfed.hydrateLikes(); pixelfed.hydrateLikes();
$('.status-card > .card-footer').each(function() {
var el = $(this);
if(!el.hasClass('d-none') && !el.find('input[name="comment"]').val()) {
$(this).addClass('d-none');
}
}); });
});
});
$(document).on("DOMContentLoaded", function() {
var active = false;
var lazyLoad = function() {
if (active === false) {
active = true;
var lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));
lazyImages.forEach(function(lazyImage) {
if ((lazyImage.getBoundingClientRect().top <= window.innerHeight && lazyImage.getBoundingClientRect().bottom >= 0) && getComputedStyle(lazyImage).display !== "none") {
lazyImage.src = lazyImage.dataset.src;
lazyImage.srcset = lazyImage.dataset.srcset;
lazyImage.classList.remove("lazy");
lazyImages = lazyImages.filter(function(image) {
return image !== lazyImage;
});
}
});
active = false;
};
}
document.addEventListener("scroll", lazyLoad);
window.addEventListener("resize", lazyLoad);
window.addEventListener("orientationchange", lazyLoad);
}); });