zoukankan      html  css  js  c++  java
  • vue+better-scroll 下拉刷新,上拉加载更多

    better-scroll 来做下拉刷新和 上拉加载 特别方便。  安装好vue脚手架和better-scroll 之后 直接复制粘贴就可以看到效果了

    <template>
        <div class="rules">
            <p class="drop-down" v-if="dropDown">松手刷新数据...</p>
            <div class="bscroll" ref="bscroll">
                <div class="bscroll-container">
                    <ul>
                       <li>1</li><li>1</li><li>1</li>
                       <li>1</li><li>1</li><li>1</li>
                       <li>1</li><li>1</li><li>1</li>
                       <li>1</li><li>1</li><li>1</li>
                       <li>1</li><li>1</li><li>1</li>
                       <li>1</li><li>1</li><li>1</li>
                       <li>1</li><li>1</li><li>1</li>
                    </ul>
                </div>
            </div>
            <!-- <p class="x">加载更多...</p> -->
        </div>
    </template>
    
    <script>
    import BScroll from 'better-scroll'
    export default {
        data(){
            return{
                dropDown:false
            }
        },
        mounted(){
            this.scrollFn()
        },
        methods:{
            scrollFn(){
                this.$nextTick(() => {
                    if (!this.scroll) {
                        this.scroll = new BScroll(this.$refs.bscroll, {
                            click: true,
                            scrollY: true,
                            probeType: 3
                        });
                    }else{
                        this.scroll.refresh();
                    }
                    this.scroll.on('scroll', (pos) => {
                        console.log(pos.y,this.dropDown)
                        //如果下拉超过50px 就显示下拉刷新的文字
                        if(pos.y>50){
                            this.dropDown = true
                        }else{
                            this.dropDown = false
                        }
                    })
                    //touchEnd(手指离开以后触发) 通过这个方法来监听下拉刷新
                    this.scroll.on('touchEnd', (pos) => {
                        // 下拉动作
                        if(pos.y > 50){
                            console.log("下拉刷新成功")
                            this.dropDown = false
                        }
                        //上拉加载 总高度>下拉的高度+10 触发加载更多
                        if(this.scroll.maxScrollY>pos.y+10){
                            console.log("加载更多")
                            //使用refresh 方法 来更新scroll  解决无法滚动的问题
                            this.scroll.refresh()
                        }
                        console.log(this.scroll.maxScrollY+"总距离----下拉的距离"+pos.y)
                    })
                    console.log(this.scroll.maxScrollY)
                });
            }
        }
    }
    </script>
    
    
    <style scoped>
    .bscroll{
         100%;
        height:500px;
        overflow: hidden;
    }
    .bscroll-container{
        background: #ff0000;
    }
    .drop-down{
        position: absolute;
        top:0px;
        lefT:0px;
         100%;
        height: 50px;
        line-height:50px;
        text-align: center;
        font-size:0.8rem;
        color:#CCC;
    }
    </style>
    

      

  • 相关阅读:
    .Net内存回收
    select rank() over
    Android中如何区分界面组件创建和销毁的类型
    Thread和Runnable的区别
    Intent对象若干数据项的含义总结
    libcurl用法
    Hadoop 使用Combiner提高Map/Reduce程序效率
    Struts2中的get、set方法作用:
    struts2 使用jsonplugin
    struts.custom.i18n.resources国际化详解(一)
  • 原文地址:https://www.cnblogs.com/chengxiang123/p/9214641.html
Copyright © 2011-2022 走看看