1. 首先,在uni-app中创建一个新的组件,命名为“ordered-barrage”。

  2. 在组件的template中,使用v-for指令遍历弹幕数组,并使用CSS样式设置弹幕的位置和样式。

<template>
  <div class="ordered-barrage">
    <div v-for="(item, index) in barrageList" :key="index" class="barrage-item" :style="{ top: (index*40)+'rpx' }">{{ item }}</div>
  </div>
</template>

<style>
.ordered-barrage {
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
}
.barrage-item {
  position: absolute;
  left: 100%;
  white-space: nowrap;
  font-size: 30rpx;
  color: #fff;
}
</style>
  1. 在组件的script中,声明一个barrageList数组用于存储弹幕内容。并使用setInterval函数定时添加弹幕内容到数组中。
<script>
export default {
  data() {
    return {
      barrageList: []
    }
  },
  mounted() {
    this.addBarrage()
  },
  methods: {
    addBarrage() {
      setInterval(() => {
        let text = this.getRandomText()
        this.barrageList.push(text)
        if (this.barrageList.length > 10) {
          this.barrageList.shift()
        }
      }, 2000)
    },
    getRandomText() {
      let texts = ['你好', '好的', '谢谢', '再见', '我爱你', '你真棒', '加油', '好看', '厉害了']
      let index = Math.floor(Math.random() * texts.length)
      return texts[index]
    }
  }
}
</script>
  1. 最后,在组件的小程序端和H5端分别导出组件,以实现兼容性。
// 小程序端
export default {
  usingComponents: {
    'ordered-barrage': './components/ordered-barrage/ordered-barrage'
  }
}

// H5端
export default {
  components: {
    'ordered-barrage': () => import('@/components/ordered-barrage/ordered-barrage.vue')
  }
}
``

原文地址: https://www.cveoy.top/t/topic/ffku 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录