vue觸底,觸頂事件


 data(){
  return{
  
    songList: [], //歌單列表
    totalPage: "",
    total: "",
    pageSize: 10,
    thisTotalPage: "",
    pageNumber: 1

}
},    

  

methods: { 
    
//添加歌單
    addSongList: async function(item, path, trackListIds) {
      console.log(item);
      let params = {};
      const res = await http.post(
        api.addSongList + item.deviceSongListId + path + this.trackId,
        params
      );
      if (res.data.statusCode == 0) {
        this.pageSize = this.pageNumber * 10;
        // 保存最開始的總頁數
        if (this.thisTotalPage == "") {
          this.thisTotalPage = this.totalPage;
        }
        this.inits(1);
        this.totalPage = this.thisTotalPage;
        Toast("添加成功");
      }
      this.listShow = false;
    },

  

    //初始化音頻數據
    inits: async function(pageNumber) {
      let data = {
        pageNum: pageNumber,
        pageSize: this.pageSize
      };
      const res = await http.get(
        api.albumSongList +
          this.$route.query.trackListId +
          "/" +
          this.facilityId,
        data
      );
      if (res.data.statusCode == 0) {
        this.songList = res.data.data.list;
        // console.log(this.songList);
        this.totalPage = res.data.data.pages;
        this.total = res.data.data.total;
      }
      this.pageSize = 10;
    },

  


  //獲取歌單 getSongList: async function() { this.pageNumber += 1; let data = { pageNum: this.pageNumber, pageSize: 10 }; const res = await http.get( api.albumSongList + this.$route.query.trackListId + "/" + this.facilityId, data ); // this.songList = res.data.data.list if (res.data.statusCode == 0) { this.totalPage = res.data.data.pages; this.total = res.data.data.total; // console.log(res.data.data.list); // this.songList = this.songList.concat(res.data.data.list); console.log(this.songList); for (let i = 0; i < res.data.data.list.length; i++) { this.songList.push(res.data.data.list[i]); } this.list = []; for (let i = 0; i < this.songList.length; i++) { this.list.push(i); } this.loading = false; } },

  

    //頁面滾動到底之后會觸發一次,
    onLoad() {
      this.loading = true;
      let self = this;
      // console.log(this.pageNumber)
      // console.log(this.thisTotalPage)
      if (this.thisTotalPage != "") {
        if (self.pageNumber < self.thisTotalPage) {
          // self.finished = true;
          setTimeout(() => {
            self.getSongList();
          }, 2000);
        } else {
          self.loading = false;
        }
      } else {
        if (self.pageNumber < self.totalPage) {
          // self.finished = true;
          setTimeout(() => {
            self.getSongList();
          }, 2000);
        } else {
          self.loading = false;
        }
      }
    },
}

  



created() { let _this = this; window.onscroll = function() { //變量scrollTop是滾動條滾動時,距離頂部的距離 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //變量windowHeight是可視區的高度 var windowHeight = document.documentElement.clientHeight || document.body.clientHeight; //變量scrollHeight是滾動條的總高度 var scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight; //滾動條到底部的條件 if (scrollTop + windowHeight == scrollHeight) { //寫后台加載數據的函數 _this.onLoad(); console.log( "距頂部" + scrollTop + "可視區高度" + windowHeight + "滾動條總高度" + scrollHeight ); } }; }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM