vue实现页面滚动到底部刷新

本文实例为大家分享了vue实现页面滚动到底部刷新的具体代码,供大家参考,具体内容如下

h5页面

 <script>
    var app = new Vue({
      el: '#app',
      data: {
        swiper: null,
        carousel: [],
        promotion: [],
        cates: [],
        //设置size初始为10
        size:10,
      },
      mounted: function () {
        //定义that用that.size获取size的值
        var that=this;
        getPromotion();
        //秒表每秒请求一次
        setInterval(function(){
          //content是div类名
          const el = document.querySelector('.content');
          const offsetHeight = el.offsetHeight;
          el.onscroll = () => {
            const scrollTop = el.scrollTop;
            const scrollHeight = el.scrollHeight;
            if ((offsetHeight + scrollTop) - scrollHeight >= -1) {
              //每次滚动到底部size+10
              that.size+=10;
            }
          }
          $.ajax({
            type: "post",
            url: "/news/search",
            data: {intro: 'best', page: 1, size: that.size},
            dataType: 'json',
            success: function (data) {
              $.hideIndicator();
              if (data.errCode === 1) {
                app.promotion = data.data.articleList;
                // console.log(222);
              } else {
                $.toast(data.errMsg);
              }
            }
          });
        },10*60);
        // window.addEventListener('scroll', this.scrollBottom());
      },
      methods: {
        goDetail: function (id) {
          location.href = '/news/newsDetail/' + id;
        },

      },

    });
    //第一次加载先获取10条
    function getPromotion() {
      $.ajax({
        type: "post",
        url: "/news/search",
        data: {intro: 'best', page: 1, size: 10},
        dataType: 'json',
        success: function (data) {
          $.hideIndicator();
          if (data.errCode === 1) {
            app.promotion = data.data.articleList;
            // console.log(data);
          } else {
            $.toast(data.errMsg);
          }
        }
      });
      $.showIndicator();
    }

</script>

后台控制器

public function search()
  {
    $parm = array('act' => 'search');
    if (!empty($_POST['catId'])) $parm['catId'] = $_POST['catId'];
    if (!empty($_POST['keyword'])) $parm['keyword'] = $_POST['keyword'];
    if (!empty($_POST['intro'])) $parm['intro'] = $_POST['intro'];
    if (!empty($_POST['order'])) $parm['order'] = $_POST['order'];
    if (!empty($_POST['sort'])) $parm['sort'] = $_POST['sort'];
    if (!empty($_POST['page'])) $parm['page'] =1;
    //获取前台传过来的size值如果不为空就设置请求接口时多一个size参数
    if (!empty($_POST['size'])) $parm['size'] = $_POST['size'];
    //调用接口
    $data = $this->http('service/article.php', $parm);
    echo json_encode($data);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 基于vue的下拉刷新指令和滚动刷新指令

    小编最近在实现移动端列表页面显示的时候一直在思考如何实现列表的自动更新数据,对于大多数Native App或者Web App,在列表的底部增加"加载更多"的按钮也是解决这样的问题一种交互的方式,当然,这样的交互其实还好,不过根据用户的操作习惯来看,似乎滚动刷新更多数据和下拉刷新当前数据的操作方式,更符合用户对列表分页数据的读取习惯,因此,在这里小编想简单的说说,这次在小编系统中所使用的下拉刷新和滚动刷新的实现方式! 其实,这种实现数据加载的原理很简单 在滚动刷新的时候,需要在列表滚动到

  • vue使用mint-ui实现下拉刷新和无限滚动的示例代码

    在开发web-app中,总会遇到v-for出来的li会有很多,当数据达几百上千条的时候,一起加载出来会造成用户体验很差的效果. 这时候我们可以使用无限滚动和下拉刷新来实现控制显示的数量,当刷新到底部的边界的时候会触发无限滚动的事件,再次加载一定数量的条目. 还是拿在项目中的功能来举栗子介绍. 有个列表,几千条数据,做分页查询,限制每次显示查询20条,每次拉到最后20条边缘的时候,触发无限滚动,这时候会出现加载图标,继续加载后续20条数据,加载到最后的时候会提示数据"加载完毕". 项目的

  • vue-mugen-scroll组件实现pc端滚动刷新

    由于工作的原因,现在需要实现一个滚动加载(PC端)的效果,之前使用的是vue+element,但是element没有类似的组件,所以去github上找了一个名叫vue-mugen-scroll,使用起来很简单也很方便,所以给大家分享一下如果使用. 一.准备工作 首先需要安装一下组件: npm install --save vue-mugen-scroll 不需要全局引用,在需要的地方引用即可: import MugenScroll from "vue-mugen-scroll"; ex

  • vue实现页面滚动到底部刷新

    本文实例为大家分享了vue实现页面滚动到底部刷新的具体代码,供大家参考,具体内容如下 h5页面 <script> var app = new Vue({ el: '#app', data: { swiper: null, carousel: [], promotion: [], cates: [], //设置size初始为10 size:10, }, mounted: function () { //定义that用that.size获取size的值 var that=this; getProm

  • jquery 页面滚动到底部自动加载插件集合

    很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容.下面为你推荐 10 个 jQuery 的无限滚动的插件: 1. jQuery ScrollPagination jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件. 2. jQuery Screw Screw (scroll + view) 是一个 jQuery 插件当用户滚动页面的时候加载内容,是一个无限滚动翻页的插件. 3

  • vue实现导航标题栏随页面滚动渐隐渐显效果

    项目开发中导航栏随页面滚动渐隐渐显这一功能还是较为常用的,下面作一个用vue实现此功能的代码分享. 1. 为导航栏元素style属性用v-bind绑定data数据"opacityStyle". <div class="header" :style="opacityStyle"> 景点详情 //内容我就简约了,实际开发以需求为准 </div> 2. data中定义opacityStyle,数据内容是opacity透明度属性,

  • Vue向下滚动加载更多数据scroll案例详解

    vue-infinite-scroll 安装 npm install vue-infinite-scroll --save 尽管官方也推荐了几种载入方式,但"最vue"的方式肯定是在main.js中加入 import infiniteScroll from 'vue-infinite-scroll' Vue.use(infiniteScroll) 实现范例 官方给的代码范例是假设你在根组件写代码,实际上我们肯定是在子组件里写代码,所以代码也需要略作修改,下方只列有用的代码片段: <

  • jQuery实现滚动到底部时自动加载更多的方法示例

    本文实例讲述了jQuery实现滚动到底部时自动加载更多的方法.分享给大家供大家参考,具体如下: 这里利用AJAX,实现滚动到底加载数据功能: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/

  • vue 解决mintui弹窗弹起来,底部页面滚动bug问题

    经过dom层层注释缩小反馈终于找到问题所在. 问题经过 我在弹起弹窗的时候,设置了popupVisible为true 然后触发了vue的updated生命周期钩子函数 然后我在这个函数里面做了去this.$refs.container.offsetHeight导致页面重绘 然后就导致了底部页面向上滚动 解决办法 去掉updated函数里面的重绘方法 补充知识:项目总结之关于vue中使用mint-ui的mt-popup出现滚动穿透问题的解决总结 说实话,使用Mint-ui这个ui组件的过程中遇到了

  • vue实现动态添加数据滚动条自动滚动到底部的示例代码

    在使用vue实现聊天页面的时候,聊天数据动态加到页面中,需要实现滚动条也自动滚动到底部.这时我找到网上有个插件 vue-chat-scroll https://www.npmjs.com/package/vue-chat-scroll 但是安装后发现是用不了的,报错信息如下: VM14383:27 [Vue warn]: Failed to resolve directive: chat-scroll (found in <Hello>) 这个一直找不到原因,可能是我vue的版本是2.2不支持

  • Vue中keep-alive 实现后退不刷新并保持滚动位置

    什么是KeepAlive? 首先,我们要明确我们谈的是TCP的 KeepAlive 还是HTTP的 Keep-Alive.TCP的KeepAlive和HTTP的Keep-Alive是完全不同的概念,不能混为一谈.实际上HTTP的KeepAlive写法是Keep-Alive,跟TCP的KeepAlive写法上也有不同. TCP的keepalive是侧重在保持客户端和服务端的连接,一方会不定期发送心跳包给另一方,当一方端掉的时候,没有断掉的定时发送几次心跳包,如果间隔发送几次,对方都返回的是RST,

  • vue利用better-scroll实现轮播图与页面滚动详解

    前言 better-scroll 也很强大,不仅可以做普通的滚动列表,还可以做轮播图.picker 等等...所以本文主要给大家介绍了关于vue用better-scroll实现轮播图与页面滚动的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.安装better-scroll 在根目录中package.json的dependencies中添加: "better-scroll": "^0.1.15" 然后 npm i 安装. 2.封装代码

随机推荐