add autoMin

This commit is contained in:
Harvey committed 2020-05-19 11:47:45 +08:00
1 parent 33a7e1193d
commit b202c21a7f
11 files changed
+150 -18

No files matched your search

+28 -7
View File
@@ -1,9 +1,10 @@
import { append, setStyle, addClass, removeClass, hasClass, def } from '../utils';
import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';
export default function minMix(art, player) {
const {
i18n,
option,
storage,
events: { proxy },
template: { $player, $minClose, $minTitle, $minHeader },
} = art;
@@ -26,8 +27,12 @@ export default function minMix(art, player) {
proxy(document, 'mousemove', (event) => {
if (isDroging) {
addClass($player, 'art-is-dragging');
setStyle($player, 'left', `${lastPlayerLeft + event.pageX - lastPageX}px`);
setStyle($player, 'top', `${lastPlayerTop + event.pageY - lastPageY}px`);
const top = lastPlayerTop + event.pageY - lastPageY;
const left = lastPlayerLeft + event.pageX - lastPageX;
setStyle($player, 'top', `${top}px`);
setStyle($player, 'left', `${left}px`);
storage.set('top', top);
storage.set('left', left);
}
});
@@ -53,13 +58,29 @@ export default function minMix(art, player) {
player.autoSize = false;
cacheStyle = $player.style.cssText;
addClass($player, 'art-min');
const $body = document.body;
setStyle($player, 'top', `${$body.clientHeight - player.height - 50}px`);
setStyle($player, 'left', `${$body.clientWidth - player.width - 50}px`);
const top = storage.get('top');
const left = storage.get('left');
if (top && left) {
setStyle($player, 'top', `${top}px`);
setStyle($player, 'left', `${left}px`);
if (!isInViewport($minHeader)) {
storage.del('top');
storage.del('left');
player.min = true;
}
} else {
const $body = document.body;
const top = $body.clientHeight - player.height - 50;
const left = $body.clientWidth - player.width - 50;
storage.set('top', top);
storage.set('left', left);
setStyle($player, 'top', `${top}px`);
setStyle($player, 'left', `${left}px`);
}
player.aspectRatio = false;
player.playbackRate = false;
art.emit('minChange', true);
} else if (player.min) {
} else {
$player.style.cssText = cacheStyle;
removeClass($player, 'art-min');
setStyle($player, 'top', null);