vux scroller 向上刷新加载数据

研究了一下如何使用vux 的向上刷新

本身熟悉js滚动到底加载的同学应该没什么问题

主要是对思路的理解

当页面第一次加载的时候isEmpty为true,触发getNewsList(true)

当滚动到底部的时候会触发selPullUp方法这个时候isEmpty为false



<template>
  <div>
    <scroller v-show="isShow" v-model="scrollerStatus" height="-46" lock-x scrollbar-y ref="scroller" :bounce="isbounce"
              :use-pullup="showUp" :pullup-config="upobj" @on-pullup-loading="selPullUp">
      <div class="box2">
        <div class="weui-panel weui-panel_access">
          <div class="weui-panel__hd">图文组合列表</div>
          <div v-for="list, index in lists" class="weui-panel__bd">
            <a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">
              <div class="weui-media-box__hd">
                <img class="weui-media-box__thumb" :src="list.pic" >
              </div>
              <div class="weui-media-box__bd">
                <h4 class="weui-media-box__title">{{list.title}}</h4>
                <p class="weui-media-box__desc">由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨道。</p>
              </div>
            </a>
          </div>
        </div>
      </div>
    </scroller>
    <loading v-model="showloading" :text="textloading"></loading>

  </div>
</template>
<script>
  import {Scroller, Loading,Panel} from ‘vux‘
  export default {
    components: {Scroller, Loading,Panel},
    data () {
      return {
        type: ‘1‘,
        PageIndex: 1,//页码从第一页开始
        PageSize: 5,//煤业显示的条数
        isShow: false,//是否显示scroller,第一次请求数据过程中隐藏插件,不隐藏的时候会显示“请上拉刷新数据”的字样,不好看
        showloading: false,
        textloading: ‘加载中‘,
        showUp: true,
        isbounce: false,
        lists: [],
        upobj: {
          content: ‘请上拉刷新数据‘,
          pullUpHeight: 60,
          height: 40,
          autoRefresh: false,
          downContent: ‘请上拉刷新数据‘,
          upContent: ‘请上拉刷新数据‘,
          loadingContent: ‘加载中...‘,
          clsPrefix: ‘xs-plugin-pullup-‘
        },
        isShowLoading: false,
        textLoading: ‘加载中‘,
        scrollerStatus: {
          pullupStatus: ‘default‘
        }
      }
    },
    mounted () {
      //第一次加载
      this.getNewsList(true)
      this.$nextTick(() => {
        this.$refs.scroller.reset()
      })
    },
    methods: {
      //第一次加载的时候容易为空true
      getNewsList (isEmpty) {
        this.showloading = true     this.$http.get(‘http://ons.me/tools/dropload/json.php?page=‘ + this.PageIndex + ‘&size=‘ + this.PageSize).then(response => {
          // sucess callback
          var data = response.data;
          if (isEmpty) {
            this.lists = []
            this.show = false
          } else {
            //isEmpty为false时,也就是向上滚动刷新selPullUp ()方法被被调用的时候
            if (data && data.length === 0) {
              this.showToast = true
              this.isShowLoading = false
              this.scrollerStatus.pullupStatus = ‘disabled‘ // 禁用下拉
              return
            }
          }
          for (var i = 0; i < data.length; i++) {
            this.lists.push(data[i]);
          }
          this.isShow = true;
          this.showloading = false
          if (!isEmpty) {
            this.scrollerStatus.pullupStatus = ‘default‘
            this.$nextTick(() => {
              this.$refs.scroller.reset()
            })
          }
        }, response => {
          // error callback
          this.isShow = false
        })
      },
      selPullUp () {
this.PageIndex++
        this.getNewsList(false)
      }
    },
    activated () {
      this.$refs.scroller.reset()
    }
  }
</script>
<style lang="less">
  @import ‘../../styles/weui/widget/weui_cell/weui_cell_global.less‘;
  @import ‘../../styles/weui/widget/weui_cell/weui_access.less‘;
  @import ‘../../styles/weui/widget/weui_panel/weui_panel.less‘;
</style>

根据博主:http://blog.csdn.net/a1871837908/article/details/55001386

代码修改

感谢!!

时间: 2024-10-17 02:52:52

vux scroller 向上刷新加载数据的相关文章

瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据

瀑布流加载显示数据,在当下已经用的很普遍,尤其是我们在做网上商城时,在产品列表页面已经被普遍使用. 对于实现瀑布流布局的解决方案主要有以下两种方式: 1.对每一条显示数据使用绝对定位+浮动的方式,这样也会有一个问题----必须要知道每一条信息的具体高宽度 2.采用列布局,将每一条数据依次放置到每一列 其实两者的实现原理都是大同小异,现在我将针对第二种解决方案,用一个具体的事例来说明 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2

listview 下拉刷新加载数据

点击头条,头条会变成以下: 然后,过一段时间,刷新完成以后,listview又setSelection(1),增加一条数据,同时,把顶部给遮挡住: 这是点击刷新,然后是下拉刷新: 最后结果和点击刷新相同.那现在开始看下代码: 首先看下所用到的控件和变量: // 状态 private static final int TAP_TO_REFRESH = 1;//点击刷新 private static final int PULL_TO_REFRESH = 2;  //拉动刷新 private sta

thinkphp5.0调用ajax无刷新加载数据

控制器层那边就是调数据返回,这里不再赘述,视图层页面ajax部分写法如下 1 function shanchu(obj) 2 { 3 var code = $(obj).attr("code"); 4 5 $.ajax({ 6 url:"/index400/Test/sc", 7 data:{code:code}, 8 type:"POST", 9 dataType:"TEXT", 10 success: function(d

jquery+ajax无刷新加载数据,新闻浏览更多

<script type="text/javascript"> $(document).ready(function (){ $(window).scroll(function(){ var page = 1; totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop()); if($(document).height() <= totalheight){ page++;

iScroll.js 向上滑动异步加载数据回弹问题

iScroll是一款用于移动设备web开发的一款插件.像缩放.下拉刷新.滑动切换等移动应用上常见的一些效果都可以轻松实现. 现在最新版本是5.X,官网这里:http://iscrolljs.com/ 下面是按照官网给的Demo,写的一个异步加载数据实例: 1 <title>iScroll demo: click</title> 2 <script src="~/Scripts/iscroll5/jquery-1.10.2.js"></scrip

向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)

/**** desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码 ajaxdata_url ajax异步的URL 如data.php page_val_name ajax异步的URL中的页码参数名 如pageno page_no 初始加载页码,默认1 [如2,则与前面两参数结合为data.php?pageno=2] is_lazyload 是否开启懒加载 page_count 总页数 empty_msg 没有数据的时候提示(可传输图片) ending_msg

滚屏加载--无刷新动态加载数据技术的应用

index.html <?php require_once('connect.php'); //连接数据库 $user = array('demo1','demo2','demo3','demo3','<de></de>mo4'); //模拟了几个用户 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm

滚屏无刷新动态加载数据

我们经常会见到滚动条滑动到底部时会自动加载数据,比如QQ空间的查看动态.下面就用一个简单的Demo来实现 1.首先建一个html文件,代码如下 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

iscroll5 上拉,下拉 加载数据

我这里的思路是上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码.请勿照搬.样式没怎么调,可以加载gif动画.1.没有数据时候,下拉可以加载数据.2.没有数据时候,点击也可以加载数据.3.其余正常. 4.只要页面没有 <div id="pullDown"> <div class="pullDownLabel">正在加载中...</div> </div> 这段代码就不会执行下拉加载数据.//没有上拉时候用到的ht