mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-19 03:11:20 -08:00
弹幕随播放器尺寸变化而调整
This commit is contained in:
1 parent
73462364b3
commit
9f9cb0e036
3 files changed
+57
-19
No files matched your search
@@ -245,12 +245,14 @@
|
||||
this.queue = [];
|
||||
this.layer = null;
|
||||
this.isStop = false;
|
||||
this.refs = [];
|
||||
this.animationFrameTimer = null;
|
||||
art.i18n.update(Danmuku.i18n);
|
||||
art.on('video:play', this.start.bind(this));
|
||||
art.on('video:playing', this.start.bind(this));
|
||||
art.on('video:pause', this.stop.bind(this));
|
||||
art.on('video:waiting', this.stop.bind(this));
|
||||
art.on('resize', this.resize.bind(this));
|
||||
art.on('destroy', this.stop.bind(this));
|
||||
this.config(option);
|
||||
|
||||
@@ -331,17 +333,35 @@
|
||||
|
||||
danmu.$state = 'emit';
|
||||
}
|
||||
}, {
|
||||
key: "resize",
|
||||
value: function resize() {
|
||||
var $player = this.art.template.$player;
|
||||
|
||||
var _Danmuku$getRect = Danmuku.getRect($player),
|
||||
playerWidth = _Danmuku$getRect.width;
|
||||
|
||||
this.queue.forEach(function (danmu) {
|
||||
danmu.$state = 'wait';
|
||||
});
|
||||
this.refs.forEach(function ($ref) {
|
||||
$ref.style.left = "".concat(playerWidth, "px");
|
||||
$ref.style.border = 'none';
|
||||
$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';
|
||||
$ref.style.transition = 'transform 0s linear 0s';
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "suspend",
|
||||
value: function suspend(danmu) {
|
||||
var $player = this.art.template.$player;
|
||||
|
||||
var _Danmuku$getRect = Danmuku.getRect($player),
|
||||
playerLeft = _Danmuku$getRect.left,
|
||||
playerWidth = _Danmuku$getRect.width;
|
||||
var _Danmuku$getRect2 = Danmuku.getRect($player),
|
||||
playerLeft = _Danmuku$getRect2.left,
|
||||
playerWidth = _Danmuku$getRect2.width;
|
||||
|
||||
var _Danmuku$getRect2 = Danmuku.getRect(danmu.$ref),
|
||||
danmuLeft = _Danmuku$getRect2.left;
|
||||
var _Danmuku$getRect3 = Danmuku.getRect(danmu.$ref),
|
||||
danmuLeft = _Danmuku$getRect3.left;
|
||||
|
||||
danmu.$restTime -= (Date.now() - danmu.$lastStartTime) / 1000;
|
||||
var translateX = playerWidth - (danmuLeft - playerLeft) + 5;
|
||||
@@ -388,9 +408,9 @@
|
||||
var playerLeft = Danmuku.getRect($player, 'left');
|
||||
var waitDanmu = this.queue.find(function (danmu) {
|
||||
if (danmu.$ref) {
|
||||
var _Danmuku$getRect3 = Danmuku.getRect(danmu.$ref),
|
||||
danmuLeft = _Danmuku$getRect3.left,
|
||||
danmuWidth = _Danmuku$getRect3.width;
|
||||
var _Danmuku$getRect4 = Danmuku.getRect(danmu.$ref),
|
||||
danmuLeft = _Danmuku$getRect4.left,
|
||||
danmuWidth = _Danmuku$getRect4.width;
|
||||
|
||||
return danmu.$state === 'emit' && playerLeft > danmuLeft + danmuWidth;
|
||||
}
|
||||
@@ -422,6 +442,7 @@
|
||||
textShadow: 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px'
|
||||
});
|
||||
append(this.layer.$ref, $ref);
|
||||
this.refs.push($ref);
|
||||
return $ref;
|
||||
}
|
||||
}, {
|
||||
@@ -429,11 +450,11 @@
|
||||
value: function getDanmuTop$1() {
|
||||
var $player = this.art.template.$player;
|
||||
|
||||
var _Danmuku$getRect4 = Danmuku.getRect($player),
|
||||
playerLeft = _Danmuku$getRect4.left,
|
||||
playerTop = _Danmuku$getRect4.top,
|
||||
playerHeight = _Danmuku$getRect4.height,
|
||||
playerWidth = _Danmuku$getRect4.width;
|
||||
var _Danmuku$getRect5 = Danmuku.getRect($player),
|
||||
playerLeft = _Danmuku$getRect5.left,
|
||||
playerTop = _Danmuku$getRect5.top,
|
||||
playerHeight = _Danmuku$getRect5.height,
|
||||
playerWidth = _Danmuku$getRect5.width;
|
||||
|
||||
var danmus = this.queue.filter(function (danmu) {
|
||||
return danmu.$state === 'emit';
|
||||
@@ -444,11 +465,11 @@
|
||||
}
|
||||
|
||||
var danmusBySort = danmus.map(function (danmu) {
|
||||
var _Danmuku$getRect5 = Danmuku.getRect(danmu.$ref),
|
||||
danmuLeft = _Danmuku$getRect5.left,
|
||||
danmuTop = _Danmuku$getRect5.top,
|
||||
danmuWidth = _Danmuku$getRect5.width,
|
||||
danmuHeight = _Danmuku$getRect5.height;
|
||||
var _Danmuku$getRect6 = Danmuku.getRect(danmu.$ref),
|
||||
danmuLeft = _Danmuku$getRect6.left,
|
||||
danmuTop = _Danmuku$getRect6.top,
|
||||
danmuWidth = _Danmuku$getRect6.width,
|
||||
danmuHeight = _Danmuku$getRect6.height;
|
||||
|
||||
var top = danmuTop - playerTop;
|
||||
var left = danmuLeft - playerLeft;
|
||||
|
||||
Reference in new issue
Block a user