91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue 實現簡易多行滾動"彈幕"效果

發布時間:2020-08-31 20:20:34 來源:腳本之家 閱讀:312 作者:noxxxx 欄目:web開發

看一下效果:

Vue 實現簡易多行滾動"彈幕"效果 

實現任意行數的定時翻滾效果,不使用重復標簽的方式,而是根據展示個數判斷是否缺省,并添加對應展示個數的重復項來實現。

Vue 的演示代碼如下:

<template>
 <div class="demo-comment-container">
 <div
  class="scroll-container"
  :
 >
  <ul
  class="scroll-ul"
  :
  >
  <div
   v-for="(item, index) in list"
   :key="index"
   v-bind="baseStyle.style"
   :bgColor="baseStyle.style.bgColor__bg"
   :
   :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="item.photo"
    >
   </div>
   <div
    v-if="item.content"
    class="c-content"
    v-html="item.content"
   />
   </li>
  </div>
  </ul>
 </div>
 <div class="comment-entry">
  <div class="f">
  <div class="text-c">
   <span
   v-if="entry.type === 1"
   class="text"
   v-text="entry.text"
   />
   <div
   v-else
   class="img-container"
   >
   <img :src="entry.image">
   </div>
   <i
   v-if="count"
   class="c-c"
   >{{ count }}</i>
  </div>
  <div>
   <span class="fake-input">來發表你的看法吧~</span>
  </div>
  </div>
 </div>
 </div>
</template>
<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 ? (this.number - this.originLength) : mod > 0 ? this.number - mod : 0 // 計算出要添加的空白元素個數
  this.list = _list

  // set empty item
  const empty = JSON.parse(JSON.stringify(_list[0]))
  empty.content = ''

  // 補齊空白元素
  while (need) {
  this.list.push(empty)
  need--
  }

  // 填充重復元素
  let repeat = this.number
  let index = 0
  while (repeat) {
  this.list.push(_list[index])
  index++
  repeat--
  }

  this.round = this.list.length / this.number

  this.scroll()
 },
 scroll () {
  let count = 1
  setInterval(() => {
  count++
  this.y -= this.height + 12 // 移動可視區域高度 + 最后一個 item 的 margin-bottom
  this.transition = '.4s ease all'
  setTimeout(() => {
   if (count === this.round) {
   count = 1
   this.transition = ''
   this.y = 0
   }
  }, 800)
  }, 2000)
 }
 }
}
</script>

總結

以上所述是小編給大家介紹的Vue 實現簡易多行滾動"彈幕",希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开化县| 揭东县| 汽车| 佳木斯市| 富民县| 项城市| 东阿县| 城步| 前郭尔| 平乡县| 灵丘县| 巢湖市| 宣城市| 廊坊市| 金塔县| 定陶县| 焉耆| 渝中区| 潜江市| 博爱县| 长海县| 富平县| 伊金霍洛旗| 罗田县| 察哈| 河北省| 舞钢市| 叙永县| 安龙县| 霍林郭勒市| 定南县| 安化县| 西林县| 镇原县| 延安市| 余庆县| 文山县| 太康县| 雅江县| 鱼台县| 涡阳县|