Vue2数据可视化大屏表格自动轮播。

* 需要用到Jquery

<template>
  <div>
    <div class="table-layout">
      <table class="scrollTable">
        <thead>
          <th>标题</th>
          <th>来源</th>
        </thead>
        <tbody>
          <tr v-for="item,index in dataInfo.items" :key="index">
            <td>
              <div class="normal-text">
                {{ item.name }}
              </div>
            </td>
            <td>
              <div class="normal-text">
                {{ item.source }}
              </div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      dataInfo: {
        page: 1,
        pageTotal: 3,
        total: 30,
        items: [
          { name: "中国教育国际交流协会职教分会2023年度会员大会在满洲里召开", source: "北京市教育委员会" },
          { name: "北京市教育委员会关于印发2023年北京职业教育与成人教育工作要点的通知", source: "北京市教育委员会" },
          { name: "北京市教委关于印发“十四五”时期北京市职业院校教师素质提高计划项目管理办法 (试行)", source: "北京市教育委员会" },
        ]
      },
      interval_1: null,
    }
  },
  mounted () {
    let that = this
    that.initScroll(that.$(".scrollTable tbody"), 'interval_1', 5000,) // 初始化轮播表格 (参数1:$dom对象、参数2:定时器、参数3、多少ms执行一次)
  },
  methods: {
    initScroll (node, interval, ms) {
      let that = this
      let height = node.height() // 滚动的高度(tbody高度)
      that[interval] = setInterval(function () {
        node.stop().animate({ // 1.先将tbody滚动到顶部看不见的地方
          bottom: height
        }, 600).promise().then(() => { // 2.执行完毕1后,将tbody置于底部看不见的地方(为了下一次从下往上的动画滚动)
          node.stop().animate({
            bottom: -height
          }, 0).promise().then(() => { // 3.执行完毕2后,请求的页码累加,请求数据,表格从下往上滚动
            if (that.dataInfo.page < that.dataInfo.pageTotal) {
              that.dataInfo.page++
            } else { // 如果请求到了最后一页,重置页码为1
              that.dataInfo.page = 1
            }
            console.log(`总页数: ${that.dataInfo.pageTotal},请求页码 => ${that.dataInfo.page}`); // 请求接口拿数据
            node.stop().animate({
              bottom: 0
            }, 500)
          })
        })
      }, ms)

    }
  },
  destroyed () {
    clearInterval(this.interval_1)
  }
}
</script>

<style lang="less">
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.table-layout {
  margin: 100px auto;
  width: 472px;
  height: 211px;
  border: 1px solid #ffffff;
  padding: 18px 20px 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.24) 0%,
    rgba(255, 255, 255, 0.24) 100%
  );
  box-shadow: 0px 0px 13px 0px rgba(42, 92, 254, 0.22),
    0px 37px 0px 0px rgba(4, 0, 0, 0),
    26px -27px 84px 0px rgba(255, 255, 255, 0),
    4px -4px 147px 0px rgba(55, 101, 254, 0);
  overflow: hidden;
  table {
    table-layout: fixed;
    overflow: hidden;
    width: 100%;
    border-collapse: collapse;
    thead {
      width: 100%;
      height: 34px;
      line-height: 34px;
      background: linear-gradient(90deg, #97d4ff 0%, #9ed9fe 100%);
      font-size: 14px;
      font-weight: bold;
      color: #0873be;
      position: relative;
      z-index: 10;
      th {
        text-align: left;
        padding-left: 8px;
      }
    }
    tbody {
      position: relative;
      bottom: 0;
      tr {
        &:not(:last-child) {
          border-bottom: 1px solid rgba(120, 140, 158, 0.12);
        }
        .normal-text {
          padding: 12px 8px;
          font-size: 14px;
          color: #535557;
          display: inline-block;
          max-width: 92%;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
        }
      }
    }
  }
}
</style>

最终效果视频:

vue2表格轮播

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 vue2 数据可视化大屏的开发,你可以使用一些常用的数据可视化库和组件来实现。以下是基本的步骤: 1. 安装 Vue2:首先确保你的项目已经安装了 Vue2,你可以使用 npm 或者 yarn 来安装。 2. 导入数据可视化库:选择适合你需求的数据可视化库,如 ECharts、Highcharts、D3.js。通过 npm 或 yarn 安装相应的库。 3. 创建数据可视化组件:在 Vue2 中,创建一个数据可视化组件。你可以使用 Vue 的单文件组件 (.vue) 来定义组件的结构、样式和行为。 4. 集成数据可视化库:在数据可视化组件中使用相应的库来实现图表和可视化效果。根据库的文档和示例,调用相应的 API 来绘制图表、处理数据和交互等。 5. 绑定数据:将需要展示的数据绑定到数据可视化组件的 props 或者 data 属性上,以便在绘制图表时使用。 6. 样式和布局:根据需求进行样式和布局的调整,可以使用 CSS 或者库提供的配置项来自定义图表的外观。 7. 动态更新:如果需要实现动态更新图表,可以通过监听数据变化或者与后端进行数据交互,来更新图表并重新渲染。 8. 其他功能:根据具体需求,可以实现一些其他的功能,如数据筛选、交互操作、数据导出等。 需要注意的是,数据可视化大屏的开发需要一定的前端基础和对数据可视化库的了解。在开发过程中,可以参考库的文档和示例,以及搜索相关的教程和案例来帮助你更好地实现需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值