Files
ArtPlayer/packages/artplayer/src/plugins/lock.js
T
2023-02-18 19:27:56 +08:00

47 lines
1.3 KiB
JavaScript

import { append, setStyle, hasClass, addClass, removeClass } from '../utils';
export default function lock(art) {
const {
layers,
icons,
template: { $player },
} = art;
layers.add({
name: 'lock',
mounted($el) {
const $lock = append($el, icons.lock);
const $unlock = append($el, icons.unlock);
setStyle($lock, 'display', 'none');
art.on('lock', (state) => {
if (state) {
setStyle($lock, 'display', 'inline-flex');
setStyle($unlock, 'display', 'none');
} else {
setStyle($lock, 'display', 'none');
setStyle($unlock, 'display', 'inline-flex');
}
});
},
click() {
if (hasClass($player, 'art-lock')) {
removeClass($player, 'art-lock');
this.isLock = false;
art.emit('lock', false);
} else {
addClass($player, 'art-lock');
this.isLock = true;
art.emit('lock', true);
}
},
});
return {
name: 'lock',
get state() {
return hasClass($player, 'art-lock');
},
};
}