hellodigua / vue-danmaku

基于 Vue 的弹幕交互组件 | A danmaku component for Vue
https://hellodigua.github.io/vue-danmaku
MIT License
620 stars 60 forks source link

当使用v-show控制弹幕区域是否显示时,弹幕挤在一起了 #41

Closed Hchier closed 1 year ago

Hchier commented 1 year ago

问题

当使用v-show控制弹幕区域是否显示时,弹幕挤在一起了。但是用v-if,则不会有这个问题。

代码实现

在此附上你遇到问题的代码或代码截图。

<template>
    <button @click="show = !show">show</button>

    <Barrage
        v-show="show"
        id="barrage"
        ref="danmaku"
        v-model:danmus="list"
        loop
        :channels="10"
        :speeds="150"
    >

    </Barrage>
</template>

<script lang="ts">
import Barrage from 'vue3-danmaku';
import {defineComponent, reactive, ref} from "vue";

export default defineComponent({
    components: {
        Barrage,
    },

    setup() {
        let show = ref(false);
        let list: Array<string> = reactive(["aaa", "bbb"]);
        return {
            list,
            show,
        };
    },
});
</script>

<style scoped>
#barrage {
    width: 500px;
    height: 300px;
    background-color: black;
}
</style>

image

环境

hellodigua commented 1 year ago

有什么条件限制要求必须用v-show吗,如果没有的话就用v-if吧