欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年12月17日 11:43:52   作者:生駒友梨奈  
這篇文章主要給大家介紹了關(guān)于PHP結(jié)合Vue如何實(shí)現(xiàn)滾動(dòng)底部加載效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

最近的一個(gè)項(xiàng)目手機(jī)端分頁(yè)跳轉(zhuǎn)不理想,自己做了一個(gè)滾動(dòng)加載的一個(gè)Demo,下面話不多說(shuō)了,來(lái)一起看看詳細(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請(qǐng)求load.php,通過(guò)Page去查詢獲得當(dāng)前頁(yè)數(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: "左滑右滑的樂(lè)趣"},
    {title: "Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服務(wù)q"},
    {title: "【MYSQL】業(yè)務(wù)上碰到的SQL問(wèn)題整理集合"},
    {title: "2018年,前端應(yīng)該怎么學(xué)?"},
    {title: "前端 ajax 請(qǐng)求的優(yōu)雅方案"},
    {title: "SegmentFault 技術(shù)周刊 Vol.39 - 什么!服務(wù)器炸了?"},
    {title: "Rokid 開(kāi)發(fā)板試用,開(kāi)啟你的嵌入式開(kāi)發(fā)之旅"},
    {title: "我腦中飄來(lái)飄去的css魔幻屬性"},
    {title: "用python解決mysql視圖導(dǎo)入導(dǎo)出依賴問(wèn)題"},
    {title: "underscore 系列之防沖突與 Utility Functions"},
    {title: "基于手淘 flexible 的 Vue 組件:TextScroll -- 文字滾動(dòng)"},
    {title: "基于‘BOSS直聘的招聘信息'分析企業(yè)到底需要什么樣的PHP程序員"},
    {title: "原生js系列之無(wú)限循環(huán)輪播組件"},
    {title: "一篇文章了解HTML文檔流(normal flow)"},
    {title: "面試官最愛(ài)的volatile關(guān)鍵字"},
    {title: "Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服務(wù)q"},
    {title: "【MYSQL】業(yè)務(wù)上碰到的SQL問(wèn)題整理集合"},
    {title: "2018年,前端應(yīng)該怎么學(xué)?"},
    {title: "前端 ajax 請(qǐng)求的優(yōu)雅方案"},
    {title: "SegmentFault 技術(shù)周刊 Vol.39 - 什么!服務(wù)器炸了?"},
    {title: "Rokid 開(kāi)發(fā)板試用,開(kāi)啟你的嵌入式開(kāi)發(fā)之旅"},
    {title: "我腦中飄來(lái)飄去的css魔幻屬性"},
    {title: "用python解決mysql視圖導(dǎo)入導(dǎo)出依賴問(wèn)題"},
    {title: "underscore 系列之防沖突與 Utility Functions"},
    {title: "基于手淘 flexible 的 Vue 組件:TextScroll -- 文字滾動(dòng)"},
    {title: "基于‘BOSS直聘的招聘信息'分析企業(yè)到底需要什么樣的PHP程序員"},
    {title: "原生js系列之無(wú)限循環(huán)輪播組件"},
    {title: "一篇文章了解HTML文檔流(normal flow)"},
    {title: "面試官最愛(ài)的volatile關(guān)鍵字"},
    {title: "Rokid 開(kāi)發(fā)板試用,開(kāi)啟你的嵌入式開(kāi)發(fā)之旅"}],
   page: 5,//總頁(yè)數(shù)
   nowPage: 1,//本頁(yè)
   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();

 }
 //頁(yè)面高度
 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é)

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

相關(guān)文章

最新評(píng)論