>웹 프론트엔드 >JS 튜토리얼 >element-ui 테이블 스크롤 이벤트를 수신하는 코드 예제

element-ui 테이블 스크롤 이벤트를 수신하는 코드 예제

不言
不言앞으로
2019-03-26 10:27:583658검색

이 기사는 요소 UI 테이블 스크롤 이벤트를 모니터링하기 위한 코드 예제입니다. 필요한 친구가 참고할 수 있기를 바랍니다.

배경: 관리 플랫폼 프로젝트 작업 시 element-ui를 사용하는데, el-table의 스크롤 위치를 모니터링하여 최신 데이터를 얻어야 합니다. 그렇다면 el-table의 스크롤을 모니터링하는 방법은 무엇일까요?

준비: 기본 기술 스택은 vue+element-ui

템플릿 코드:

<el-table 
    :data="logList" 
    :show-header="false" 
    row-class-name="table-row-class" 
    height="700" 
    ref="table" 
    @row-click="rowClick">
    <el-table-column type="expand">
        <el-table-column
        label="log信息"
        prop="message">
    </el-table-column>
</el-table>

듣기 이벤트 바인딩

    mounted() {
        // 获取需要绑定的table
        this.dom = this.$refs.table.bodyWrapper
        this.dom.addEventListener('scroll', () => {
            // 滚动距离
            let scrollTop = this.dom.scrollTop
            // 变量windowHeight是可视区的高度
            let windowHeight = this.dom.clientHeight || this.dom.clientHeight
            // 变量scrollHeight是滚动条的总高度
            let scrollHeight = this.dom.scrollHeight || this.dom.scrollHeight
            if (scrollTop + windowHeight === scrollHeight) {
                // 获取到的不是全部数据 当滚动到底部 继续获取新的数据
                if (!this.allData) this.getMoreLog()
                console.log('scrollTop', scrollTop + 'windowHeight', windowHeight + 'scrollHeight', scrollHeight)
            }
        })
    }

새 데이터를 얻은 후 스크롤 막대의 위치를 ​​조정합니다

    getMoreLog() {
        ...
        this.dom.scrollTop = this.dom.scrollTop - 100
        ...
    }

결론: 지금까지 우리는 테이블 바인딩이 완료되었습니다!

이 기사는 여기서 끝났습니다. 더 흥미로운 콘텐츠를 보려면 PHP 중국어 웹사이트의 JavaScript Video Tutorial 칼럼을 주목하세요!

위 내용은 element-ui 테이블 스크롤 이벤트를 수신하는 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제