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 self.canAutoPlayVideo() && !browserInfo.mobile;
return self.canAutoPlayVideo();
};
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;
}
var images = elems;
function unveil() {
var cancellationTokens = [];
function unveilInternal(tokenIndex) {
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++) {
if (cancellationTokens[tokenIndex]) {
return;
}
var img = images[i];
if (isVisible(img)) {
if (!out && isVisible(img)) {
anyFound = true;
fillImage(img);
} else {
if (anyFound) {
out = true;
}
remaining.push(img);
}
}
@ -40,13 +59,27 @@
images = remaining;
if (!images.length) {
document.removeEventListener('focus', unveil, true);
document.removeEventListener('scroll', unveil, true);
document.removeEventListener(wheelEvent, 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('focus', unveil, true);
document.addEventListener(wheelEvent, unveil, true);
window.addEventListener('resize', unveil, true);
@ -102,14 +135,9 @@
return elem.animate(keyframes, timing);
}
function simpleImageStore() {
var self = this;
self.setImageInto = setImageIntoElement;
}
window.ImageStore = new simpleImageStore();
window.ImageStore = {
setImageInto: setImageIntoElement
};
window.ImageLoader = {
fillImages: fillImages,