vue-danmaku
Version:
基于 Vue 的弹幕交互组件 | A danmaku component for Vue
246 lines (245 loc) • 6.07 kB
TypeScript
import { PropType } from 'vue';
import { Danmu } from './typings/Danmaku';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
/**
* 弹幕列表数据
*/
danmus: {
type: PropType<Danmu[]>;
required: true;
default: () => never[];
};
/**
* 轨道数量,0为最大轨道数量(撑满容器)
*/
channels: {
type: NumberConstructor;
default: number;
};
/**
* 是否自动播放
*/
autoplay: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否循环播放
*/
loop: {
type: BooleanConstructor;
default: boolean;
};
/**
* 循环模式下是否避免重复弹幕
*/
loopOnly: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否开启随机轨道注入弹幕
*/
randomChannel: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否开启悬浮暂停
*/
isSuspend: {
type: BooleanConstructor;
default: boolean;
};
/**
* 性能模式,启用时使用requestAnimationFrame代替CSS动画
*/
performanceMode: {
type: BooleanConstructor;
default: boolean;
};
/**
* 弹幕刷新频率(ms)
*/
debounce: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕速度(像素/秒)
*/
speeds: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕垂直间距
*/
top: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕水平间距
*/
right: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕默认层级
*/
zIndex: {
type: NumberConstructor;
default: number;
};
/**
* 是否自动监听容器大小变化
*/
autoResize: {
type: BooleanConstructor;
default: boolean;
};
}>, {
container: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
dmContainer: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
hidden: import("vue").Ref<boolean, boolean>;
paused: import("vue").Ref<boolean, boolean>;
danmuList: import("vue").Ref<Danmu[], Danmu[]>;
getPlayState: () => boolean;
getMaxChannels: () => number;
resize: () => void;
play: () => void;
pause: () => void;
stop: () => void;
show: () => void;
hide: () => void;
clear: () => void;
reset: () => void;
addDanmu: (danmu: Danmu, position?: 'current' | 'end') => number;
insert: (dm?: Danmu) => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("list-end" | "play-end" | "dm-over" | "dm-out" | "dm-click" | "dm-remove" | "error")[], "list-end" | "play-end" | "dm-over" | "dm-out" | "dm-click" | "dm-remove" | "error", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
/**
* 弹幕列表数据
*/
danmus: {
type: PropType<Danmu[]>;
required: true;
default: () => never[];
};
/**
* 轨道数量,0为最大轨道数量(撑满容器)
*/
channels: {
type: NumberConstructor;
default: number;
};
/**
* 是否自动播放
*/
autoplay: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否循环播放
*/
loop: {
type: BooleanConstructor;
default: boolean;
};
/**
* 循环模式下是否避免重复弹幕
*/
loopOnly: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否开启随机轨道注入弹幕
*/
randomChannel: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否开启悬浮暂停
*/
isSuspend: {
type: BooleanConstructor;
default: boolean;
};
/**
* 性能模式,启用时使用requestAnimationFrame代替CSS动画
*/
performanceMode: {
type: BooleanConstructor;
default: boolean;
};
/**
* 弹幕刷新频率(ms)
*/
debounce: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕速度(像素/秒)
*/
speeds: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕垂直间距
*/
top: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕水平间距
*/
right: {
type: NumberConstructor;
default: number;
};
/**
* 弹幕默认层级
*/
zIndex: {
type: NumberConstructor;
default: number;
};
/**
* 是否自动监听容器大小变化
*/
autoResize: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{
"onList-end"?: ((...args: any[]) => any) | undefined;
"onPlay-end"?: ((...args: any[]) => any) | undefined;
"onDm-over"?: ((...args: any[]) => any) | undefined;
"onDm-out"?: ((...args: any[]) => any) | undefined;
"onDm-click"?: ((...args: any[]) => any) | undefined;
"onDm-remove"?: ((...args: any[]) => any) | undefined;
onError?: ((...args: any[]) => any) | undefined;
}>, {
danmus: Danmu[];
channels: number;
autoplay: boolean;
loop: boolean;
loopOnly: boolean;
randomChannel: boolean;
isSuspend: boolean;
performanceMode: boolean;
debounce: number;
speeds: number;
top: number;
right: number;
zIndex: number;
autoResize: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;