最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue 實現(xiàn)簡易多行滾動"彈幕"效果

 更新時間:2020年01月02日 08:43:46   作者:noxxxx  
這篇文章主要介紹了Vue 實現(xiàn)簡易多行滾動“彈幕”效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

看一下效果:

 

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

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="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">來發(fā)表你的看法吧~</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, // 原始數(shù)組長度
  transition: 'ease all .4s',
  round: 0 // 需要滾動多少輪
 }
 },
 created () {
 this.getCommentList()
 },
 mounted () {
 this.dom = document.querySelector('.c-item')
 // 計算可視區(qū)域高度
 this.height = 64 * this.number + (12 * (this.number - 1))
 },
 methods: {
 getCommentList () {
  // 接口數(shù)據(jù)
  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 // 計算出要添加的空白元素個數(shù)
  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 // 移動可視區(qū)域高度 + 最后一個 item 的 margin-bottom
  this.transition = '.4s ease all'
  setTimeout(() => {
   if (count === this.round) {
   count = 1
   this.transition = ''
   this.y = 0
   }
  }, 800)
  }, 2000)
 }
 }
}
</script>

總結(jié)

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

相關文章

  • Vue常用傳值方式、父傳子、子傳父及非父子實例分析

    Vue常用傳值方式、父傳子、子傳父及非父子實例分析

    這篇文章主要介紹了Vue常用傳值方式、父傳子、子傳父及非父子,結(jié)合實例形式分析了vue.js常見的傳值方式及相關操作注意事項,需要的朋友可以參考下
    2020-02-02
  • 詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法

    詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法

    這篇文章主要介紹了詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法的相關資料,這里提供了解決問題的詳細步驟,具有一定的參考價值,需要的朋友可以參考下
    2017-07-07
  • uniapp 微信小程序之金額展示套餐

    uniapp 微信小程序之金額展示套餐

    文章介紹了uniapp微信小程序金額展示套餐的相關內(nèi)容,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-01-01
  • 如何構(gòu)建一個Vue插件并生成npm包

    如何構(gòu)建一個Vue插件并生成npm包

    這篇文章主要介紹了如何構(gòu)建一個Vue插件并生成npm包,幫助大家更好的理解和使用vue,方便以后的開發(fā),感興趣的朋友可以了解下
    2020-10-10
  • vue3數(shù)組或?qū)ο筚x值不更新解決方法示例

    vue3數(shù)組或?qū)ο筚x值不更新解決方法示例

    這篇文章主要為大家介紹了vue3數(shù)組或?qū)ο筚x值不更新解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Vue中的情侶屬性$dispatch和$broadcast詳解

    Vue中的情侶屬性$dispatch和$broadcast詳解

    這篇文章主要給大家介紹了關于Vue中情侶屬性$dispatch和$broadcast的相關資料,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • vue生成token并保存到本地存儲中

    vue生成token并保存到本地存儲中

    這篇文章主要介紹了vue生成token并保存到本地存儲中,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • vue-router 起步步驟詳解

    vue-router 起步步驟詳解

    這篇文章主要介紹了vue-router 起步步驟詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Vue實現(xiàn)導出Excel表格文件提示“文件已損壞無法打開”的解決方法

    Vue實現(xiàn)導出Excel表格文件提示“文件已損壞無法打開”的解決方法

    xlsx用于讀取解析和寫入Excel文件的JavaScript庫,它提供了一系列的API處理Excel文件,使用該庫,可以將數(shù)據(jù)轉(zhuǎn)換Excel文件并下載到本地,適用于在前端直接生成Excel文件,這篇文章主要介紹了Vue實現(xiàn)導出Excel表格,提示文件已損壞,無法打開的解決方法,需要的朋友可以參考下
    2024-01-01
  • vue如何監(jiān)聽對象或者數(shù)組某個屬性的變化詳解

    vue如何監(jiān)聽對象或者數(shù)組某個屬性的變化詳解

    這篇文章主要給大家介紹了關于vue如何監(jiān)聽對象或者數(shù)組某個屬性的變化,在Vue.js中可以通過watch監(jiān)聽屬性變化并動態(tài)修改其他屬性的值,watch通過監(jiān)聽器函數(shù)接收新舊值,實現(xiàn)屬性間的數(shù)據(jù)聯(lián)動,需要的朋友可以參考下
    2024-12-12

最新評論

淄博市| 庆云县| 宝应县| 北安市| 永新县| 原平市| 梨树县| 明光市| 白山市| 邢台市| 略阳县| 崇信县| 呼图壁县| 南涧| 和静县| 东宁县| 乃东县| 淮滨县| 高要市| 交城县| 托克逊县| 汶川县| 沙洋县| 鸡东县| 晋州市| 秀山| 炎陵县| 容城县| 宝兴县| 林甸县| 江北区| 隆林| 泗水县| 库伦旗| 钦州市| 延边| 浦县| 天津市| 定陶县| 斗六市| 樟树市|