From 84c03dda5f8c938317ec6f049301d1acaa00d0de Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 29 Oct 2013 21:53:02 +0100 Subject: LazyLoad manuel pour les articles repliés MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LazyLoad.js utilise énormément de CPU et ralentit considérablement le défilement de page, en particulier lorsque le nombre d'articles augmente. Dans le cas des articles repliés, il n'y a en fait pas besoin du mécanisme complexe de LazyLoad.js basé sur les événements scroll, car il suffit de charger les images lors du dépliage es articles, et cela allège énormément l'expérience. --- public/scripts/main.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'public/scripts') diff --git a/public/scripts/main.js b/public/scripts/main.js index 72795be51..f01781bf7 100644 --- a/public/scripts/main.js +++ b/public/scripts/main.js @@ -24,6 +24,13 @@ function redirect (url, new_tab) { } function toggleContent (new_active, old_active) { + if (does_lazyload) { + new_active.find('img[data-original]').each(function() { + this.setAttribute('src', this.getAttribute('data-original')); + this.removeAttribute('data-original'); + }); + } + old_active.removeClass ("active"); if (old_active[0] != new_active[0]) { new_active.addClass ("active"); @@ -62,10 +69,6 @@ function toggleContent (new_active, old_active) { new_scroll = $(box_to_move).scrollTop (new_pos).scrollTop (); } - if ((new_scroll === old_scroll) && $.fn.lazyload) { - $(window).trigger ("scroll"); //When no scroll was done, generate fake scroll event for LazyLoad to load images - } - if (auto_mark_article) { mark_read(new_active, true); } @@ -182,7 +185,7 @@ function inMarkViewport(flux, box_to_follow, relative_follow) { function init_posts () { init_img (); - if (does_lazyload) { + if ($.fn.lazyload) { if (is_global_mode()) { $(".flux .content img").lazyload({ container: $("#panel") -- cgit v1.2.3