mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-01-19 12:49:25 +08:00
fix: 优化弹幕
This commit is contained in:
parent
ed3ef3c16a
commit
17d46fa158
@ -2,7 +2,13 @@ import BoxAnimate from '@/components/boxAnimate.vue';
|
||||
import { EmitableEvent, EventEmitter } from '@/core/common/eventEmitter';
|
||||
import { logger } from '@/core/common/logger';
|
||||
import { ResponseBase } from '@/core/interface';
|
||||
import { deleteWith, ensureArray, parseCss, tip } from '@/plugin/utils';
|
||||
import {
|
||||
deleteWith,
|
||||
ensureArray,
|
||||
getIconHeight,
|
||||
parseCss,
|
||||
tip
|
||||
} from '@/plugin/utils';
|
||||
import axios, { AxiosResponse, toFormData } from 'axios';
|
||||
import { Component, VNode, h, shallowReactive } from 'vue';
|
||||
/* @__PURE__ */ import { id, password } from '../../../../user';
|
||||
@ -484,22 +490,14 @@ export class Danmaku extends EventEmitter<DanmakuEvent> {
|
||||
|
||||
// 图标类型
|
||||
Danmaku.registerSpecContent('i', content => {
|
||||
const iconInfo = core.getBlockInfo(content as AllIds);
|
||||
if (!iconInfo) {
|
||||
return h(BoxAnimate as Component, {
|
||||
id: 'greenSlime',
|
||||
noborder: true,
|
||||
width: 32,
|
||||
height: 32
|
||||
});
|
||||
}
|
||||
const height = getIconHeight(content as AllIds);
|
||||
|
||||
return h(BoxAnimate as Component, {
|
||||
id: content,
|
||||
noborder: true,
|
||||
noAnimate: true,
|
||||
width: 32,
|
||||
height: iconInfo.height
|
||||
height
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -97,7 +97,7 @@ ticker.add(time => {
|
||||
if (!hover) {
|
||||
const dx = dt * speed;
|
||||
value.pos -= dx;
|
||||
ele.style.left = `${value.pos.toFixed(2)}px`;
|
||||
ele.style.transform = `translateX(${value.pos.toFixed(2)}px)`;
|
||||
}
|
||||
|
||||
if (value.pos + width < 0) {
|
||||
@ -134,7 +134,7 @@ function touchStart(id: number) {
|
||||
|
||||
function calTop(id: number) {
|
||||
const danmaku = eleMap.get(id)!;
|
||||
const fontSize = mainSetting.getValue('screen.fontSize', 16) * 1.25 + 10;
|
||||
const fontSize = mainSetting.getValue('screen.fontSize', 16) * 1.25 + 15;
|
||||
|
||||
const used: Set<number> = new Set();
|
||||
eleMap.forEach(v => {
|
||||
@ -177,7 +177,8 @@ onUnmounted(() => {
|
||||
|
||||
.danmaku-one {
|
||||
position: fixed;
|
||||
left: 100vw;
|
||||
left: 0;
|
||||
transform: translateX(100vw);
|
||||
width: max-content;
|
||||
white-space: nowrap;
|
||||
text-wrap: nowrap;
|
||||
|
Loading…
Reference in New Issue
Block a user