1. 程式人生 > 其它 >elementui el-table滾動

elementui el-table滾動

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>element-ui table自動滾動</title>
    </head>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
    <body>
        <div id="app">
              <el-table
                :data="tableData"
                height="300"
                border
                style="width: 70vw"
                ref="table">
                <el-table-column
                  prop="date"
                  label="日期"
                  width="180">
                </el-table-column>
                <el-table-column
                  prop="name"
                  label="姓名"
                  width="180">
                </el-table-column>
                <el-table-column
                  prop="address"
                  label="地址">
                </el-table-column>
              </el-table>
        </div>
        
        <script>
            new Vue({
                el: '#app',
                data() {
                    return {
                        // 表格資料
                        tableData: [
                            {
                              date: '2016-05-03',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }, {
                              date: '2016-05-02',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }, {
                              date: '2016-05-04',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }, {
                              date: '2016-05-01',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }, {
                              date: '2016-05-08',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }, {
                              date: '2016-05-06',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }, {
                              date: '2016-05-07',
                              name: '王小虎',
                              address: '上海市普陀區金沙江路 1518 弄'
                            }]
                    }
                },
                mounted() {
                    // 拿到表格掛載後的真實DOM
                    const table = this.$refs.table
                    // 拿到表格中承載資料的div元素
                    const divData = table.bodyWrapper
                    // 拿到元素後,對元素進行定時增加距離頂部距離,實現滾動效果(此配置為每100毫秒移動1畫素)
                    setInterval(() => {
                        // 元素自增距離頂部1畫素
                        divData.scrollTop += 1
                        // 判斷元素是否滾動到底部(可視高度+距離頂部=整個高度)
                        if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
                            // 重置table距離頂部距離
                            divData.scrollTop = 0
                        }
                    }, 100)
                }
            })
        </script>
    </body>
</html>