Vue 实现简易多行滚动"弹幕"效果
(编辑:jimmy 日期: 2024/11/29 浏览:3 次 )
看一下效果:
实现任意行数的定时翻滚效果,不使用重复标签的方式,而是根据展示个数判断是否缺省,并添加对应展示个数的重复项来实现。
Vue 的演示代码如下:
<template> <div class="demo-comment-container"> <div class="scroll-container" :style="{height: `${height/100}rem`}" > <ul class="scroll-ul" :style="{transform: `translate3d(0, ${y/100}rem, 0)`, transition: `${transition}`}" > <div v-for="(item, index) in list" :key="index" v-bind="baseStyle.style" :bgColor="baseStyle.style.bgColor__bg" :style="{ color: rgba(baseStyle.color__nf) }" :class="['c-item-bg', 'c-item', !item.content && 'empty']" > <li class="c-item" > <div class="avatar"> <img v-if="item.content" class="avatar-item" :src="/UploadFiles/2021-04-02/item.photo"><script> export default { inject: ['rgba'], props: { urlConfig: { type: Object, default: function () { return {} } }, type: { type: String, default: 'hot' }, pageSize: { type: Number, default: 50 }, open: { type: Boolean, default: true }, entry: { type: Object, default: function () { return { type: 1, // 1 文字 2 自定义 text: '', image: '' } } }, number: { type: Number, default: 2 }, }, data () { return { count: 2334, dom: null, height: 0, // 单项高度 y: 0, // 每次移动距离 list: [], // 接口列表 originLength: 0, // 原始数组长度 transition: 'ease all .4s', round: 0 // 需要滚动多少轮 } }, created () { this.getCommentList() }, mounted () { this.dom = document.querySelector('.c-item') // 计算可视区域高度 this.height = 64 * this.number + (12 * (this.number - 1)) }, methods: { getCommentList () { // 接口数据 const _list = [] this.originLength = _list.length const mod = this.originLength % this.number let need = this.originLength < this.number "color: #ff0000">总结以上所述是小编给大家介绍的Vue 实现简易多行滚动"弹幕",希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
下一篇:JS实现秒杀倒计时特效