mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-27 01:21:20 -08:00
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
import { setStyle, errorHandle, def } from '../utils';
|
|
|
|
export default function rotateMix(art, player) {
|
|
const {
|
|
template: { $video, $player },
|
|
i18n,
|
|
notice,
|
|
} = art;
|
|
|
|
def(player, 'rotate', {
|
|
get: () => Number($player.dataset.rotate) || 0,
|
|
set: (deg) => {
|
|
const degList = [false, -270, -180, -90, 0, 90, 180, 270];
|
|
errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);
|
|
|
|
if (!deg) {
|
|
setStyle($video, 'width', null);
|
|
setStyle($video, 'height', null);
|
|
setStyle($video, 'padding', null);
|
|
delete $player.dataset.rotate;
|
|
} else {
|
|
const { videoWidth, videoHeight } = $video;
|
|
const { clientWidth, clientHeight } = $player;
|
|
const degFormat = deg < 0 ? deg + 360 : deg;
|
|
$player.dataset.rotate = deg;
|
|
}
|
|
|
|
if (typeof deg === 'number') {
|
|
notice.show = `${i18n.get('Rotate')}: ${deg}°`;
|
|
}
|
|
|
|
art.emit('rotate', deg);
|
|
},
|
|
});
|
|
|
|
def(player, 'rotateReset', {
|
|
set(value) {
|
|
if (value && player.rotate) {
|
|
const { rotate } = player;
|
|
player.rotate = rotate;
|
|
}
|
|
},
|
|
});
|
|
}
|