iscroll上拉刷新效果怎么实现

这篇“iscroll上拉刷新效果怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“iscroll上拉刷新效果怎么实现”文章吧。

10年的珠晖网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整珠晖建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“珠晖网站设计”,“珠晖网站推广”以来,每个客户项目都认真落实执行。

iscroll 上拉刷新极简入门案例

  • 注意:只有当内容超出屏幕区域才可以上拉刷新呢

演示

使用步骤

1:编写html页面,并引入相应js文件

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"
        <!--<link rel="stylesheet" href="css/style.css">-->
            <!--引入js文件-->
        <script src="js/jquery.min.js"></script>
        <script src="js/iscroll.js"></script>

        <title>上拉加载更多</title>
    </head>

    <body>
        <!--<header>这是头部</header>-->
        <!--id为 wrapper 表示这个div是滑动的父窗体-->
        <div id="wrapper">
            <!--scroller 表示这是个可以滑动的控件-->
            <div class="scroller">
                <ul>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                </ul>
                <!--这是上拉刷新的提示信息,会自动隐藏,样式完全可以自己定义-->
                <div class="more"><i class="pull_icon"></i><span>上拉加载...</span></div>
            </div>
        </div>
        <!--<footer>这是底部</footer>-->
    </body>

</html>

要想这个 div可以被滑动,对于 id为 wrapper 的div我们必须加如下的设置

#wrapper {
                width: 100%;/*必须*/
                position: absolute;/*必须*/
                left: 0;/*必须*/
                top: -1rem;/*必须[如果有头部,可以设置为头部的高度]*/
                bottom: 0rem;/*必须[如果有底部导航栏,这里可以设置底部导航栏的高度]*/
                overflow: hidden;/*规定当元素内部的内容超出元素自身的尺寸范围时应该如何来处理*/
                z-index: 1;/*层相对于屏幕纵深方向的顺序*/
                background-color: #ccc;/*背景颜色*/
            }

注意上拉刷新的显示等待信息也是个 html 定义,

<!--这是上拉刷新的提示信息,会自动隐藏,样式完全可以自己定义-->
                <div class="more"><i class="pull_icon"></i><span>上拉加载...</span></div>

所以我们完全可以定义为我们自己想要的样式,我定义的如下:这完全是为了好看

<style>#wrapper {
                width:100%;/*必须*/
                position: absolute;/*必须*/
                left:0;/*必须*/
                top:1rem;/*必须[如果有头部,可以设置为头部的高度]*/
                bottom:0rem;/*必须[如果有底部导航栏,这里可以设置底部导航栏的高度]*/
                overflow: hidden;/*规定当元素内部的内容超出元素自身的尺寸范围时应该如何来处理*/
                z-index:1;/*层相对于屏幕纵深方向的顺序*/
                background-color:#ccc;/*背景颜色*/
            }

            #wrapper li {
                height:10rem;
                line-height:10rem;
                text-align: center;
                border-bottom:1px solid rgba(0, 0, 0, .1);
            }

            .more {
                height:4rem;
                display: flex;
                align-items: center;
                justify-content: center;
                color:#333;
            }

            .pull_icon {
                width:25px;
                height:25px;
                background-image:url('images/pull.png');
                background-repeat: no-repeat;
                background-position: center;
                background-size:25px;
                transition:5s;
            }

            .more span {
                padding-left:5rem;
            }

            .scroller {
                background-color:#fff;
            }

            .more .flip {
                transform:rotate(180deg);
            }

            .loading {
                background-image:url('images/loading.png');
                background-repeat: no-repeat;
                background-position: center;
                background-size:25px;
            }

            .more .loading {
                -webkit-transform:rotate(0deg) translateZ(0);
                -webkit-transition-duration:0;
                -webkit-animation-name: loading;
                -webkit-animation-duration:2s;
                -webkit-animation-iteration-count: infinite;
                -webkit-animation-timing-function: linear;
            }</style>

2: 初始化 iscroll.js

<script>
            var myscroll = new iScroll("wrapper", {
                onScrollMove: function()
                    if(this.y < (this.maxScrollY)) {
                        $('.pull_icon').addClass('flip');
                        $('.pull_icon').removeClass('loading');
                        $('.more span').text('释放加载...');
                    } else {
                        $('.pull_icon').removeClass('flip loading');
                        $('.more span').text('上拉加载...')
                    }
                },
                //滚动到屏幕底部触发此事件
                onScrollEnd: function()
                    if($('.pull_icon').hasClass('flip')) {
                        $('.pull_icon').addClass('loading');
                        $('.more span').text('加载中...');
                        //自己的事件(上拉刷新事件)
                        pullUpAction();
                    }

                },
                onRefresh: function()
                    $('.more').removeClass('flip');
                    $('.more span').text('上拉加载...');
                }

            });

            //上拉刷新
            function pullUpAction()
                setTimeout(function()
                    //填充数据
                    for(var i = 0; i < 5; i++) {
                        $('.scroller ul').append("<li>一只将死之猿!</li>");
                    }
                    myscroll.refresh();
                }, 1000)
            }
            if($('.scroller').height() < $('#wrapper').height()) {
                $('.more').hide();
                myscroll.destroy();
            }
        </script>

如果你不想了解细节,只需要关注 pullUpAction() 方法的实现即可,在此填充数据.

至此一个上拉刷新的功能就完成了.

完整页面布局:

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"
        <!--<link rel="stylesheet" href="css/style.css">-->
        <script src="js/jquery.min.js"></script>
        <script src="js/iscroll.js"></script>
        <style>#wrapper {
                width:100%;/*必须*/
                position: absolute;/*必须*/
                left:0;/*必须*/
                top:1rem;/*必须[如果有头部,可以设置为头部的高度]*/
                bottom:0rem;/*必须[如果有底部导航栏,这里可以设置底部导航栏的高度]*/
                overflow: hidden;/*规定当元素内部的内容超出元素自身的尺寸范围时应该如何来处理*/
                z-index:1;/*层相对于屏幕纵深方向的顺序*/
                background-color:#ccc;/*背景颜色*/
            }

            #wrapper li {
                height:10rem;
                line-height:10rem;
                text-align: center;
                border-bottom:1px solid rgba(0, 0, 0, .1);
            }

            .more {
                height:4rem;
                display: flex;
                align-items: center;
                justify-content: center;
                color:#333;
            }

            .pull_icon {
                width:25px;
                height:25px;
                background-image:url('images/pull.png');
                background-repeat: no-repeat;
                background-position: center;
                background-size:25px;
                transition:5s;
            }

            .more span {
                padding-left:5rem;
            }

            .scroller {
                background-color:#fff;
            }

            .more .flip {
                transform:rotate(180deg);
            }

            .loading {
                background-image:url('images/loading.png');
                background-repeat: no-repeat;
                background-position: center;
                background-size:25px;
            }

            .more .loading {
                -webkit-transform:rotate(0deg) translateZ(0);
                -webkit-transition-duration:0;
                -webkit-animation-name: loading;
                -webkit-animation-duration:2s;
                -webkit-animation-iteration-count: infinite;
                -webkit-animation-timing-function: linear;
            }</style>
        <title>上拉加载更多</title>
    </head>

    <body>
        <!--<header>这是头部</header>-->
        <!--id为 wrapper 表示这个div是滑动的父窗体-->
        <div id="wrapper">
            <!--scroller 表示这是个可以滑动的控件-->
            <div class="scroller">
                <ul>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                    <li>你就是一个天才</li>
                </ul>
                <!--这是上拉刷新的提示信息,会自动隐藏,样式完全可以自己定义-->
                <div class="more"><i class="pull_icon"></i><span>上拉加载...</span></div>
            </div>
        </div>
        <!--<footer>这是底部</footer>-->
        <script>var myscroll = new iScroll("wrapper", {
                onScrollMove: function()
                    if(this.y < (this.maxScrollY)) {
                        $('.pull_icon').addClass('flip');
                        $('.pull_icon').removeClass('loading');
                        $('.more span').text('释放加载...');
                    } else {
                        $('.pull_icon').removeClass('flip loading');
                        $('.more span').text('上拉加载...')
                    }
                },
                //滚动到屏幕底部触发此事件
                onScrollEnd: function()
                    if($('.pull_icon').hasClass('flip')) {
                        $('.pull_icon').addClass('loading');
                        $('.more span').text('加载中...');
                        //自己的事件(上拉刷新事件)
                        pullUpAction();
                    }

                },
                onRefresh: function()
                    $('.more').removeClass('flip');
                    $('.more span').text('上拉加载...');
                }

            });

            //上拉刷新
            function pullUpAction()
                setTimeout(function()
                    //填充数据
                    for(var i = 0; i < 5; i++) {
                        $('.scroller ul').append("<li>一只将死之猿!</li>");
                    }
                    myscroll.refresh();
                }, 1000)
            }
            if($('.scroller').height() < $('#wrapper').height()) {
                $('.more').hide();
                myscroll.destroy();
            }
        </script>
    </body>

</html>

以上就是关于“iscroll上拉刷新效果怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。

分享题目:iscroll上拉刷新效果怎么实现
网站路径:https://www.cdcxhl.com/article24/geocce.html

成都网站建设公司_创新互联,为您提供外贸网站建设网站导航网站收录微信公众号软件开发关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设