mirror of
https://github.com/9001/copyparty.git
synced 2025-08-20 02:12:20 -06:00
clear transform on 0deg rotate
This commit is contained in:
parent
d9fa74711d
commit
7a13e8a7fc
|
@ -419,6 +419,7 @@ window.baguetteBox = (function () {
|
||||||
unbind(overlay, 'touchmove', touchmoveHandler, passiveEvent);
|
unbind(overlay, 'touchmove', touchmoveHandler, passiveEvent);
|
||||||
unbind(overlay, 'touchend', touchendHandler);
|
unbind(overlay, 'touchend', touchendHandler);
|
||||||
unbind(document, 'focus', trapFocusInsideOverlay, true);
|
unbind(document, 'focus', trapFocusInsideOverlay, true);
|
||||||
|
timer.rm(rotn);
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepareOverlay(gallery, userOptions) {
|
function prepareOverlay(gallery, userOptions) {
|
||||||
|
@ -669,18 +670,31 @@ window.baguetteBox = (function () {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var prev_cw = 0, prev_ch = 0, unrot_timer = null;
|
||||||
function rotn(n) {
|
function rotn(n) {
|
||||||
var el = vidimg(),
|
var el = vidimg(),
|
||||||
orot = parseInt(el.getAttribute('rot') || 0),
|
orot = parseInt(el.getAttribute('rot') || 0),
|
||||||
frot = orot + n * 90,
|
frot = orot + (n || 0) * 90;
|
||||||
rot = frot,
|
|
||||||
|
if (!frot && !orot)
|
||||||
|
return; // reflow noop
|
||||||
|
|
||||||
|
var co = ebi('bbox-overlay'),
|
||||||
|
cw = co.clientWidth,
|
||||||
|
ch = co.clientHeight;
|
||||||
|
|
||||||
|
if (!n && prev_cw === cw && prev_ch === ch)
|
||||||
|
return; // reflow noop
|
||||||
|
|
||||||
|
prev_cw = cw;
|
||||||
|
prev_ch = ch;
|
||||||
|
var rot = frot,
|
||||||
iw = el.naturalWidth || el.videoWidth,
|
iw = el.naturalWidth || el.videoWidth,
|
||||||
ih = el.naturalHeight || el.videoHeight,
|
ih = el.naturalHeight || el.videoHeight,
|
||||||
magic = 4, // idk, works in enough browsers
|
magic = 4, // idk, works in enough browsers
|
||||||
co = ebi('bbox-overlay'),
|
|
||||||
dl = el.closest('div').querySelector('figcaption a'),
|
dl = el.closest('div').querySelector('figcaption a'),
|
||||||
vw = co.clientWidth,
|
vw = cw,
|
||||||
vh = co.clientHeight - dl.offsetHeight + magic,
|
vh = ch - dl.offsetHeight + magic,
|
||||||
pmag = Math.min(1, Math.min(vw / ih, vh / iw)),
|
pmag = Math.min(1, Math.min(vw / ih, vh / iw)),
|
||||||
wmag = Math.min(1, Math.min(vw / iw, vh / ih));
|
wmag = Math.min(1, Math.min(vw / iw, vh / ih));
|
||||||
|
|
||||||
|
@ -703,6 +717,11 @@ window.baguetteBox = (function () {
|
||||||
el.style.top = (vh - ih * mag) / 2 - magic + 'px';
|
el.style.top = (vh - ih * mag) / 2 - magic + 'px';
|
||||||
el.style.transform = 'rotate(' + frot + 'deg)';
|
el.style.transform = 'rotate(' + frot + 'deg)';
|
||||||
el.setAttribute('rot', frot);
|
el.setAttribute('rot', frot);
|
||||||
|
timer.add(rotn);
|
||||||
|
if (!rot) {
|
||||||
|
clearTimeout(unrot_timer);
|
||||||
|
unrot_timer = setTimeout(unrot, 300);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function rotl() {
|
function rotl() {
|
||||||
rotn(-1);
|
rotn(-1);
|
||||||
|
@ -710,6 +729,23 @@ window.baguetteBox = (function () {
|
||||||
function rotr() {
|
function rotr() {
|
||||||
rotn(1);
|
rotn(1);
|
||||||
}
|
}
|
||||||
|
function unrot() {
|
||||||
|
var el = vidimg(),
|
||||||
|
orot = el.getAttribute('rot'),
|
||||||
|
rot = parseInt(orot || 0);
|
||||||
|
|
||||||
|
while (rot < 0) rot += 360;
|
||||||
|
while (rot >= 360) rot -= 360;
|
||||||
|
if (rot || orot === null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
el.classList.add('nt');
|
||||||
|
el.removeAttribute('rot');
|
||||||
|
el.removeAttribute("style");
|
||||||
|
rot = el.offsetHeight;
|
||||||
|
el.classList.remove('nt');
|
||||||
|
timer.rm(rotn);
|
||||||
|
}
|
||||||
|
|
||||||
function vid() {
|
function vid() {
|
||||||
return imagesElements[currentIndex].querySelector('video');
|
return imagesElements[currentIndex].querySelector('video');
|
||||||
|
@ -781,11 +817,17 @@ window.baguetteBox = (function () {
|
||||||
mp_ctl();
|
mp_ctl();
|
||||||
setVmode();
|
setVmode();
|
||||||
|
|
||||||
|
var el = vidimg();
|
||||||
|
if (el.getAttribute('rot'))
|
||||||
|
timer.add(rotn);
|
||||||
|
else
|
||||||
|
timer.rm(rotn);
|
||||||
|
|
||||||
var prev = QS('.full-image.vis');
|
var prev = QS('.full-image.vis');
|
||||||
if (prev)
|
if (prev)
|
||||||
prev.classList.remove('vis');
|
prev.classList.remove('vis');
|
||||||
|
|
||||||
vidimg().closest('div').classList.add('vis');
|
el.closest('div').classList.add('vis');
|
||||||
}
|
}
|
||||||
|
|
||||||
function preloadNext(index) {
|
function preloadNext(index) {
|
||||||
|
|
|
@ -1328,7 +1328,11 @@ html.light #tree::-webkit-scrollbar {
|
||||||
max-height: calc(100% - 1.4em);
|
max-height: calc(100% - 1.4em);
|
||||||
margin-bottom: 1.4em;
|
margin-bottom: 1.4em;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
transition: transform .2s, left .2s, top .2s, width .2s, height .2s;
|
transition: transform .23s, left .23s, top .23s, width .23s, height .23s;
|
||||||
|
}
|
||||||
|
.full-image img.nt,
|
||||||
|
.full-image video.nt {
|
||||||
|
transition: none;
|
||||||
}
|
}
|
||||||
.full-image.vis img,
|
.full-image.vis img,
|
||||||
.full-image.vis video {
|
.full-image.vis video {
|
||||||
|
|
|
@ -494,7 +494,7 @@ var timer = (function () {
|
||||||
apop(r.q, fun);
|
apop(r.q, fun);
|
||||||
};
|
};
|
||||||
|
|
||||||
function impl() {
|
function doevents() {
|
||||||
if (Date.now() - r.last < 69)
|
if (Date.now() - r.last < 69)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -504,7 +504,7 @@ var timer = (function () {
|
||||||
|
|
||||||
r.last = Date.now();
|
r.last = Date.now();
|
||||||
}
|
}
|
||||||
setInterval(impl, 100);
|
setInterval(doevents, 100);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
|
|
Loading…
Reference in a new issue