濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > PHP結(jié)合Vue實(shí)現(xiàn)滾動(dòng)底部加載效果

PHP結(jié)合Vue實(shí)現(xiàn)滾動(dòng)底部加載效果

熱門標(biāo)簽:福建高頻外呼防封系統(tǒng)哪家好 外呼系統(tǒng)人工客服 隨州銷售電銷機(jī)器人公司 網(wǎng)絡(luò)電話400申請 百度地圖標(biāo)注類型是酒店 周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 400電話申請辦理 商丘外呼系統(tǒng)好處 全國各省地圖標(biāo)注點(diǎn)

前言

最近的一個(gè)項(xiàng)目手機(jī)端分頁跳轉(zhuǎn)不理想,自己做了一個(gè)滾動(dòng)加載的一個(gè)Demo,下面話不多說了,來一起看看詳細(xì)的介紹吧。

實(shí)現(xiàn)思路

     1.獲得滾動(dòng)條到底部的距離 getScrollBottomHeight()

     2.綁定滾動(dòng)事件handleScroll() ,handleScroll()判斷滾動(dòng)條到底部距離是否小于設(shè)置的bottomHight,并且增加一個(gè)loading屬性,防止加載時(shí)滑動(dòng)時(shí)多次觸發(fā),造成多次加載

     3.Ajax請求load.php,通過Page去查詢獲得當(dāng)前頁數(shù)(page+1)的內(nèi)容

     4.將獲取的內(nèi)容,push 到 list中,完成后Vue 自動(dòng)渲染新的列表,loading變?yōu)閒alse

核心Dom結(jié)構(gòu)

body>
div id="Content">
 div>
  ul>
   li v-for="l in list">{{l.title}}/li>
   li class="loading" v-if="loading">加載中/li>
  /ul>
 /div>
/div>
/body>

Javascript代碼

script>
 var v = new Vue({
  el: "#Content",
  data: {
   list: [{title: "使用思維導(dǎo)圖,優(yōu)雅的完成自己的代碼"},
    {title: "左滑右滑的樂趣"},
    {title: "Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服務(wù)q"},
    {title: "【MYSQL】業(yè)務(wù)上碰到的SQL問題整理集合"},
    {title: "2018年,前端應(yīng)該怎么學(xué)?"},
    {title: "前端 ajax 請求的優(yōu)雅方案"},
    {title: "SegmentFault 技術(shù)周刊 Vol.39 - 什么!服務(wù)器炸了?"},
    {title: "Rokid 開發(fā)板試用,開啟你的嵌入式開發(fā)之旅"},
    {title: "我腦中飄來飄去的css魔幻屬性"},
    {title: "用python解決mysql視圖導(dǎo)入導(dǎo)出依賴問題"},
    {title: "underscore 系列之防沖突與 Utility Functions"},
    {title: "基于手淘 flexible 的 Vue 組件:TextScroll -- 文字滾動(dòng)"},
    {title: "基于‘BOSS直聘的招聘信息'分析企業(yè)到底需要什么樣的PHP程序員"},
    {title: "原生js系列之無限循環(huán)輪播組件"},
    {title: "一篇文章了解HTML文檔流(normal flow)"},
    {title: "面試官最愛的volatile關(guān)鍵字"},
    {title: "Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服務(wù)q"},
    {title: "【MYSQL】業(yè)務(wù)上碰到的SQL問題整理集合"},
    {title: "2018年,前端應(yīng)該怎么學(xué)?"},
    {title: "前端 ajax 請求的優(yōu)雅方案"},
    {title: "SegmentFault 技術(shù)周刊 Vol.39 - 什么!服務(wù)器炸了?"},
    {title: "Rokid 開發(fā)板試用,開啟你的嵌入式開發(fā)之旅"},
    {title: "我腦中飄來飄去的css魔幻屬性"},
    {title: "用python解決mysql視圖導(dǎo)入導(dǎo)出依賴問題"},
    {title: "underscore 系列之防沖突與 Utility Functions"},
    {title: "基于手淘 flexible 的 Vue 組件:TextScroll -- 文字滾動(dòng)"},
    {title: "基于‘BOSS直聘的招聘信息'分析企業(yè)到底需要什么樣的PHP程序員"},
    {title: "原生js系列之無限循環(huán)輪播組件"},
    {title: "一篇文章了解HTML文檔流(normal flow)"},
    {title: "面試官最愛的volatile關(guān)鍵字"},
    {title: "Rokid 開發(fā)板試用,開啟你的嵌入式開發(fā)之旅"}],
   page: 5,//總頁數(shù)
   nowPage: 1,//本頁
   loading: false,//一步加載時(shí)的限制
   bottomHight: 50,//滾動(dòng)條到某個(gè)位置才觸發(fā)時(shí)間
  },
  methods: {
   handleScroll: function () {
    if (getScrollBottomHeight() = v.bottomHight  v.nowPage  v.page  v.loading == false) {
     v.loading = true
     var url = "load.php"
     $.ajax({
      type: "GET",
      url: url,
      async: true,
      dataType: "json",
      success: function (data) {
       for (var i = 0; i  data.length; i++) {
        v.list.push(data[i])
       }
       v.nowPage++
       v.loading = false
      },
     })
    }
   }
  },

 })
 //添加滾動(dòng)事件
 window.onload = function () {
  window.addEventListener('scroll', v.handleScroll)
 }
 //滾動(dòng)條到底部的距離
 function getScrollBottomHeight() {
  return getPageHeight() - getScrollTop() - getWindowHeight();

 }
 //頁面高度
 function getPageHeight() {
  return document.querySelector("html").scrollHeight
 }
 //滾動(dòng)條頂 高度
 function getScrollTop() {
  var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
  if (document.body) {
   bodyScrollTop = document.body.scrollTop;
  }
  if (document.documentElement) {
   documentScrollTop = document.documentElement.scrollTop;
  }
  scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
  return scrollTop;
 }
 function getWindowHeight() {
  var windowHeight = 0;
  if (document.compatMode == "CSS1Compat") {
   windowHeight = document.documentElement.clientHeight;
  } else {
   windowHeight = document.body.clientHeight;
  }
  return windowHeight;
 }
/script>

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • vue+php實(shí)現(xiàn)的微博留言功能示例
  • vue.js 雙層嵌套for遍歷的方法詳解, 類似php foreach()
  • thinkphp集成前端腳手架Vue-cli的教程圖解
  • vue.js過濾器+ajax實(shí)現(xiàn)事件監(jiān)聽及后臺(tái)php數(shù)據(jù)交互實(shí)例
  • Vue 項(xiàng)目中遇到的跨域問題及解決方法(后臺(tái)php)
  • php和vue配合使用技巧和方法

標(biāo)簽:樂山 海南 南寧 六安 迪慶 十堰 佛山 定西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP結(jié)合Vue實(shí)現(xiàn)滾動(dòng)底部加載效果》,本文關(guān)鍵詞  PHP,結(jié)合,Vue,實(shí)現(xiàn),滾動(dòng),底部,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP結(jié)合Vue實(shí)現(xiàn)滾動(dòng)底部加載效果》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP結(jié)合Vue實(shí)現(xiàn)滾動(dòng)底部加載效果的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    崇文区| 台山市| 永城市| 永昌县| 化隆| 乌拉特后旗| 蕲春县| 静乐县| 阿拉尔市| 关岭| 招远市| 海伦市| 泸水县| 安溪县| 兴安盟| 错那县| 大埔区| 昆山市| 昌江| 玉门市| 榆林市| 广平县| 安国市| 定襄县| 隆化县| 遵化市| 普格县| 凯里市| 安阳县| 平舆县| 西乌珠穆沁旗| 扎赉特旗| 英超| 苗栗市| 绵竹市| 泰州市| 盐津县| 苏州市| 龙岩市| 从化市| 华亭县|