Last active
October 11, 2022 11:34
-
-
Save pepebe/4369623 to your computer and use it in GitHub Desktop.
Progressive loading with Cycle2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Cycle2 doesn't support progressive loading for sliders utilizing the pager option: | |
As a quickfix I lazyload all images with jail.js and after jail is finished I initialize cycle(). | |
HOWTO: | |
1. Download jail.js: https://github.com/sebarmeli/JAIL/blob/master/src/jail.js | |
hint: get familiar with all the options jail offers. It's really a nice tool. | |
2. Add jail.js to the head of your html | |
<script src="/lib/jquery.js"></script> | |
2. Modify your image markup: | |
<div class="cycle-off" > | |
<div class="cycle-pager"></div> | |
<img data-src='assets/images/example.jpg' | |
src="assets/tpl/js/jail/grey.gif" | |
class='jail' | |
> | |
<!-- no-js fallback --> | |
<noscript><img src="assets/images/example.jpg"/><noscript> | |
... | |
</div> | |
Note that the original source of the image is moved to data-src. Instead we will load a fake image (grey.gif). | |
The noscript part is only important if its important for you / or your vistors to see the image if js is broken for some reasons. | |
Next add a scripz block near the bottom of your page: | |
<script> | |
$(function(){ | |
$('img.jail').jail({ | |
loadHiddenImages : true // (1) | |
,callback : (function(){ // (2) | |
$('.cycle-off').each(function(){ // (3) | |
$(this).addClass('cycle-slideshow').removeClass('cycle-off'); (4) | |
$(this).cycle({ // (5) | |
speed: 600, | |
slides: '> img' | |
}); | |
}); | |
}) | |
}); | |
}); | |
</script> | |
(1) Make sure that hidden images are loaded as well (optional). For details read the jail.js documentation | |
(2) jail.js provides a nice callback that fires after it has finished loading all images. We will utilize this to fire cycle. | |
(3) Find all .cycle-off sliders and and execute some stuff while you are there... | |
(2) Remove the .cycle-off and add .cycle-slideshow. | |
(4) Initilize slideshow for this container. | |
Thats it... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment