vue结合 better-scroll 下拉加载问题

源码:https://github.com/LY-u/vue_better-scroll
封装scroll.vue组件, 在组件内加载:
import BScroll from ‘better-scroll‘
组件内容:参考:https://github.com/LY-u/vue_better-scroll/blob/master/src/components/page.vue

封装好的scroll.vue在项目中使用:
import BScroll from ‘better-scroll‘
import scroll from ‘@/components/scroll‘

注意事项:先引入better-scroll 组件 在引入scroll,期中BScroll组件不要再模板里调用

components:{scroll}

APP.vue使用 scroll组件

<scroll class="wrap"
          ref=‘scrollEle‘
          :pulldown="true"
          :listenScroll=‘true‘
          :pullDownRefresh="pullDownRefreshObj"
          @pulldown="loadData"
          @scroll=‘scroll‘></scroll>

<script>
export default{
computed:{
        pullDownRefreshObj(){
        // 下拉刷新配置
        return {
            threshold: 60,
            stop: 50,
            stopTime:1000
        }
      },
    },

//这里具体参数配置  参考官方文档 http://ustbhuangyi.github.io/better-scroll/doc/zh-hans/api-specific.html  具体我也不太明白,我也是参考这里一步一步写的,

methods:{
 loadData(){
         setTimeout(()=>{
          this.finishPullDown().then(res=>{
            console.log(‘refresh‘)
            })
          },1000)
        },
    scroll(pos){
      //监听滚动
        let y = -pos.y
        // alert(y)
        },
    scrollTo(y) {
      return new Promise((resolve)=>{
        this.$refs.scrollEle.scrollTo(0, -y, 500, ‘bounce‘)
        resolve()
      })
    },
    scrollToElement(){
      let el = document.querySelector(‘.to‘)
      this.$refs.scrollEle.scrollToElement(el,700)
    },
    finishPullDown() {
      return this.$refs.scrollEle.finishPullDown()
    },
    initScroll() {
      let s = this.$refs.scrollEle.scroll
      if(s){
        return this.refreshScroll()
      }else{
        return this.$refs.scrollEle._initScroll()
      }
    },
    refreshScroll() {
      return this.$refs.scrollEle.refresh()
    },
    },
},
mounted() {
       //初始化滚动条
      this.initScroll()
    },
}
</script>

<style>
.wrap{
//滚动条高度初始化
  width: 100%;
  height: 100%;
  overflow:hidden;
}
</style>

//写到这里,其实还有一个坑,不能实现滚动,怎么解决了? 终于研究了半天,一个代码一个代码的去参考:https://github.com/LY-u/vue_better-scroll/tree/master/src/components

  最终自己也无奈了,解决办法就是在
<scroll class="wrap"
          ref=‘scrollEle‘
          :pulldown="true"
          :listenScroll=‘true‘
          :pullDownRefresh="pullDownRefreshObj"
          @pulldown="loadData"
          @scroll=‘scroll‘>
<div></div>
</scroll>

注意里面的所有数据都要放在div里面  ,然后滚动条就出来了。

原文地址:https://www.cnblogs.com/hxp87/p/9263884.html

时间: 2024-08-04 01:08:03

vue结合 better-scroll 下拉加载问题的相关文章

vue实现ajax滚动下拉加载,同时具有loading效果

<!doctype html> <html> <head> <meta charset="utf-8"> <title>vue测试ajax的使用</title> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.

vue加jq的下拉加载总结

先贴代码.要想做下拉加载 ,那么就有一个得先判断在什么时候去加载.我做的判断是当底部离页面还有100左右是我就设置加载.所以,我先获取所有的li列表.然后设置body的高度,拿到body高度,在拿到网页滚动过的高度.把列表的高度减去body加滚动过的高度.就是底部离页面的距离高度. 使用vue的钩子函数,不懂得可以先看vue文档.然后在使用监听滚动条的事件.其他一切看代码. 原文地址:https://www.cnblogs.com/dongfangtaling/p/9146228.html

vue2.0 结合better-scroll 实现下拉加载

一.建议先了解下better-scroll 的介绍 链接:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/#better-scroll%20%E6%98%AF%E4%BB%80%E4%B9%88 二.npm 安装 npm install better-scroll --save 三.因为项目里面多个页面会用到上拉加载,所以这里先作为组件来使用,在components新建一个文件夹scroll,然后建立子文件scroll.vue Sc

iscroll.js实现上拉刷新,下拉加载更多,应用技巧项目实战

上拉刷新,下拉加载更多...仿原生的效果----iscroll是一款做滚动效果的插件,具体介绍我就不废话,看官方文档,我只写下我项目开发的一些用到的用法: (如果不好使,调试你的css,想必是个很蛋疼的问题,给点提示 :#wrapper,以及#scroller-content要注意) html如下: <div class="viewport"> <div id="wrapper" class="wrapper"> <

下拉加载更多DEMO(js实现)

项目的一个前端页面展示已购买商品时,要求能下拉加载更多.花了点时间研究这个功能,以前没做过. 首先需要给div加scroll事件,监听滚动条滚动动作.那何时触发加载动作呢?当滚动条滚到底的时候.如何判断滚动条滚到底呢? 当滚动条的高度加上滚动条到div顶部的高度等于div的可滚动高度时,说明滚动条到底部了.公式如下. [javascript] view plain copy this.scrollHeight <= $(this).scrollTop() + $(this).height() 给

JQuery实现无刷新下拉加载图片

      最近做的一个项目需要做页面无刷新下拉加载图片,调研了一番,大多都采用检测滚动条达到底部,然后利用ajax加载下一页数据对页面数据进行添加,根据这一逻辑,自己写了一个,具体代码如下: JQuery写下拉触发ajax事件 $(window).scroll(function () { if($(window).scrollTop()==($(document).height()-$(window).height()))//判断右边滑动条是否滑到最下 { $.ajax({ url:"&quo

jQuery手机端上拉刷新下拉加载更多页面

<!doctype html> <html> <head> <title>jquery 手机端上拉刷新下拉加载更多页面</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta name="viewpost" content="width=device-wi

移动端下拉加载

/** * 初始化下拉加载 */ function scrollInit(){ var bottom = 50; //下拉加载[待定问题 绑定dom元素不对] $('#tapContainer').off('scroll').on('scroll',function () { if($('#templateContainer').length < 1){ return; } var hei = $('#templateContainer').height() ; var bodyHei = $(

jQuery 滚动条下拉加载内容

现在很多网站为了更好的用户体验,那么就会预先加载一部分内容,等到滚动条下拉到底部的时候,然后使用 ajax或其它技术,请求更多的内容,这样会使网页的用户体验会更好些,那么这个是怎么样做到的呢?现在就在这里提供一种思路出来... $(function(){ //思路是:如果内容区域 小于等于 可视区高度加滚动条的高度的话那么就进行加载... $(window).scroll(function(){ // document 文档高度 var docHeight = $(document).heigh

iscroll5 上拉,下拉 加载数据

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