Vue3 列表自动滚动播放 vue3-seamless-scroll


父组件data

javascript 复制代码
<script setup>
  import { getCurrentInstance, onMounted } from "vue";
  onMounted(() => {
   let data = [
        {
      "id": 25,
      "content": "设备离线",
      "is_recovery": 1,
      "trigger_time": "2024.04.19 16:48",
      "recovery_name": "已恢复"
    },
    {
      "id": 24,
      "content": "设备离线",
      "is_recovery": 1,
      "trigger_time": "2024.04.19 16:48",
      "recovery_name": "已恢复"
    }
  ]

  const { proxy } = getCurrentInstance();
  proxy.$refs["dsRealWarn"].initData(data); 
});

</script>

子组件 vue3-seamless-scroll 常用说明如下:

limitScrollNum 多少条才开始滚动

hover-stop="true" 鼠标悬浮暂停滚动

step 滚动的速度

滚动的列表所在容器必须设置样式 overflow: hidden;

javascript 复制代码
npm install vue3-seamless-scroll --save
javascript 复制代码
<template>
  <div class="warningInfo">
    <HomeTitle title="报警信息"></HomeTitle>
    <div class="content" v-if="items?.length > 0">
      <vue3-seamless-scroll hover-stop="true" hover="true" step="0.2" limitScrollNum="4" :list="items" class="scroll"
        v-if="items?.length > 0">
        <div class="item" v-for="item in items" :key="item.id">
          <div>
            <div class="top">
              <span :class="[
                item.is_recovery === 0 ? 'warningBg' : 'normalBg',
                'WaterMonitor',
              ]">{{ item.recovery_name }}</span>
              <span class="time">{{ item.trigger_time }}</span>
            </div>
            <div :class="[
              item.is_recovery === 0 ? 'warningRemark' : 'normalRemark',
              'remark',
            ]">{{ item.content }}</div>
          </div>
        </div>
      </vue3-seamless-scroll>
    </div>
    <HomeNoData class="scroll" :isBlackText="true" v-else />
  </div>
</template>
<script setup>
import { ref, reactive, getCurrentInstance } from "vue";
import HomeTitle from "./DsHomeTitle.vue";
import HomeNoData from "@/components/homeNoData/index.vue";
import { Vue3SeamlessScroll } from "vue3-seamless-scroll";

const items = ref([]);

const initData = (data) => {
  items.value = data;
};


defineExpose({ initData });
</script>
<style lang="scss" scoped>
.warningInfo {
  width: 100%;
  height: calc((100vh - 160px) / 3 - 10px);
  background: #f0f9ff;
  border: 1px solid #fff;
  border-radius: 6px;
  margin-top: 10px;

  .content {
    width: 100%;
    height: calc((100vh - 160px) / 3 - 10px - 60px);
    overflow-y: auto;

    .item {
      width: 100%;
      // padding-left: 24px;
      padding: 0 12px;
      margin-top: 16px;

      .top {
        width: 100%;
        height: 21px;
      }

      .WaterMonitor {
        border-radius: 4px;
        font-size: 12px;
        margin-right: 6px;
        color: #fff;
        padding: 1px 4px;
      }

      .warningBg {
        background: linear-gradient(180.00deg, #b23535 0%, #d33232 100%);
      }

      .normalBg {
        background: linear-gradient(180.00deg, #00af75 0%, #008d5e 100%);
      }

      .time {
        font-size: 13px;
        color: #295574;
      }

      .remark {
        width: 100%;
        height: 25px;
        line-height: 25px;
        margin-top: 10px;
        font-weight: 500;
        font-size: 15px;
        text-align: left;
        color: #003558;
        padding: 0 8px;
      }

      .warningRemark {
        background: linear-gradient(260.36deg, #f0f9ff 0%, #ebd0d0 100%);
      }

      .normalRemark {
        background: linear-gradient(260.36deg, #f0f9ff 0%, #c9ecffe6 100%)
      }
    }
  }
}

.scroll {
  width: 100%;
  height: calc((100vh - 160px) / 3 - 10px - 60px);
  box-sizing: border-box;
  overflow: hidden;
}
</style>

参考管网
https://www.npmjs.com/package/vue3-seamless-scroll

相关推荐
IMPYLH2 分钟前
Linux 的 users 命令
linux·运维·服务器·前端·数据库·bash
李伟_Li慢慢2 分钟前
URDFLoader简介
前端·机器人·three.js
Nontee2 分钟前
三大范式是什么?
java·前端·数据库
青山如墨雨如画4 分钟前
【Win11下的andrej-karpathy-skills 配置指南】22 万 Star 的极简项目,如何治好 AI 的「过度设计」
前端
ljt27249606615 分钟前
Vue笔记(五)--组件进阶
前端·vue.js·笔记
逆境不可逃14 分钟前
【与我学 ClaudeCode】协作篇 之 Team Protocols :结构化请求 - 响应协作协议
前端
a11177617 分钟前
【无标题】
前端·开源·html
晓得迷路了18 分钟前
栗子前端技术周刊第 130 期 - Angular 22 RC、Rolldown 1.0.1、pnpm 11.2...
前端·javascript·react.js
审判长烧鸡18 分钟前
【AI问答/前端】前端瞒天过海局(三)
前端·vue·html5·js
桔筐21 分钟前
【无标题】
前端·vue.js