1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update unveil

This commit is contained in:
Luke Pulverenti 2016-01-12 14:06:44 -05:00
parent 4747efc4eb
commit 8d72d96722
2 changed files with 43 additions and 15 deletions

View file

@ -591,7 +591,7 @@
return false; return false;
} }
return self.canAutoPlayVideo() && !browserInfo.mobile; return self.canAutoPlayVideo();
}; };
self.canAutoPlayVideo = function () { self.canAutoPlayVideo = function () {

View file

@ -16,23 +16,42 @@
} }
} }
function unveilElements(elems) { function cancelAll(tokens) {
for (var i = 0, length = tokens.length; i < length; i++) {
if (!elems.length) { tokens[i] = true;
}
}
function unveilElements(images) {
if (!images.length) {
return; return;
} }
var images = elems; var cancellationTokens = [];
function unveilInternal(tokenIndex) {
function unveil() {
var remaining = []; var remaining = [];
var anyFound = false;
var out = false;
// TODO: This out construct assumes left to right, top to bottom
for (var i = 0, length = images.length; i < length; i++) { for (var i = 0, length = images.length; i < length; i++) {
if (cancellationTokens[tokenIndex]) {
return;
}
var img = images[i]; var img = images[i];
if (isVisible(img)) { if (!out && isVisible(img)) {
anyFound = true;
fillImage(img); fillImage(img);
} else { } else {
if (anyFound) {
out = true;
}
remaining.push(img); remaining.push(img);
} }
} }
@ -40,13 +59,27 @@
images = remaining; images = remaining;
if (!images.length) { if (!images.length) {
document.removeEventListener('focus', unveil, true);
document.removeEventListener('scroll', unveil, true); document.removeEventListener('scroll', unveil, true);
document.removeEventListener(wheelEvent, unveil, true); document.removeEventListener(wheelEvent, unveil, true);
window.removeEventListener('resize', unveil, true); window.removeEventListener('resize', unveil, true);
} }
} }
function unveil() {
cancelAll(cancellationTokens);
var index = cancellationTokens.length;
cancellationTokens.length++;
setTimeout(function () {
unveilInternal(index);
}, 1);
}
document.addEventListener('scroll', unveil, true); document.addEventListener('scroll', unveil, true);
document.addEventListener('focus', unveil, true);
document.addEventListener(wheelEvent, unveil, true); document.addEventListener(wheelEvent, unveil, true);
window.addEventListener('resize', unveil, true); window.addEventListener('resize', unveil, true);
@ -102,14 +135,9 @@
return elem.animate(keyframes, timing); return elem.animate(keyframes, timing);
} }
function simpleImageStore() { window.ImageStore = {
setImageInto: setImageIntoElement
var self = this; };
self.setImageInto = setImageIntoElement;
}
window.ImageStore = new simpleImageStore();
window.ImageLoader = { window.ImageLoader = {
fillImages: fillImages, fillImages: fillImages,