开发者社区> 问答> 正文

用iscroll.js滚屏到底部触发事件怎么写?

用iscroll.js,滚屏到手机页面底部触发加载更多,判断已经到了页面底部的条件要怎么写?我查找了一些网上的资料,但都是都有不懂的地方:
screenshot
希望能帮写个详细demo?

展开
收起
蛮大人123 2016-03-10 17:21:42 2999 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    这是我之前写的一个,你可以参考看下

    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
            <meta name="apple-mobile-web-app-capable" content="yes">
            <meta name="apple-mobile-web-app-status-bar-style" content="black">
            <title>下拉刷新</title>
            <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
            <script type="text/javascript" src="http://cubiq.org/dropbox/iscroll4/src/iscroll.js?v4"></script>
            <style type="text/css" media="all">
                body,
                ul,
                li {
                    padding: 0;
                    margin: 0;
                    border: 0;
                }
                body {
                    font-size: 12px;
                    -webkit-user-select: none;
                    -webkit-text-size-adjust: none;
                    font-family: helvetica;
                    background: #777777;
                }
                #header {
                    position: absolute;
                    z-index: 2;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 45px;
                    line-height: 45px;
                    background-color: #d51875;
                    background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
                    background-image: -moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
                    background-image: -o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
                    padding: 0;
                    color: #eee;
                    font-size: 20px;
                    text-align: center;
                }
                #header a {
                    color: #f3f3f3;
                    text-decoration: none;
                    font-weight: bold;
                    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
                }
                #footer {
                    position: absolute;
                    z-index: 2;
                    bottom: 0;
                    left: 0;
                    width: 100%;
                    height: 48px;
                    background-color: #222;
                    background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
                    background-image: -moz-linear-gradient(top, #999, #666 2%, #222);
                    background-image: -o-linear-gradient(top, #999, #666 2%, #222);
                    padding: 0;
                    border-top: 1px solid #444;
                }
                p{
                    height: 20px;
                    overflow: hidden;
                    background: red;
                }
                #wrapper {
                    position: absolute;
                    z-index: 1;
                    top: 45px;
                    bottom: 48px;
                    left: -9999px;
                    width: 100%;
                    background: #aaa;
                    overflow: auto;
                }
                #scroller {
                    position: absolute;
                    z-index: 1;
                    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
                    width: 100%;
                    padding: 0;
                }
                #scroller ul {
                    list-style: none;
                    padding: 0;
                    margin: 0 auto;
                    width: 100%;
                    text-align: left;
                    width: 80px;
                }
                #scroller li {
                    overflow: hidden;
                    width: 80px;
                    font-size: 14px;
                }
                #scroller li img {
                    width: 100%;
                    height: 150px;
                    overflow: hidden;
                    vertical-align: middle;
                }
                #myFrame {
                    position: absolute;
                    top: 0;
                    left: 0;
                }
                #pullUp {
                    background: #fff;
                    height: 40px;
                    line-height: 40px;
                    padding: 5px 10px;
                    border-bottom: 1px solid #ccc;
                    font-weight: bold;
                    font-size: 14px;
                    color: #888;
                }
                #pullUp .pullUpIcon {
                    display: block;
                    float: left;
                    width: 40px;
                    height: 40px;
                    background: url(http://cubiq.org/dropbox/iscroll4/examples/pull-to-refresh/pull-icon@2x.png) 0 0 no-repeat;
                    -webkit-background-size: 40px 80px;
                    background-size: 40px 80px;
                    -webkit-transition-property: -webkit-transform;
                    -webkit-transition-duration: 250ms;
                }
                #pullDown .pullDownIcon {
                    -webkit-transform: rotate(0deg) translateZ(0);
                }
                #pullUp .pullUpIcon {
                    -webkit-transform: rotate(-180deg) translateZ(0);
                }
                #pullDown.flip .pullDownIcon {
                    -webkit-transform: rotate(-180deg) translateZ(0);
                }
                #pullUp.flip .pullUpIcon {
                    -webkit-transform: rotate(0deg) translateZ(0);
                }
                #pullUp.loading .pullUpIcon {
                    background-position: 0 100%;
                    -webkit-transform: rotate(0deg) translateZ(0);
                    -webkit-transition-duration: 0ms;
                    -webkit-animation-name: loading;
                    -webkit-animation-duration: 2s;
                    -webkit-animation-iteration-count: infinite;
                    -webkit-animation-timing-function: linear;
                }
                @-webkit-keyframes loading {
                    from {
                        -webkit-transform: rotate(0deg) translateZ(0);
                    }
                    to {
                        -webkit-transform: rotate(360deg) translateZ(0);
                    }
                }
                #loading {
                    display: none;
                    position: absolute;
                    top: 180px;
                    left: 150px;
                    width: 26px;
                    height: 8px;
                    z-index: 99
                }
                #loading img {
                    margin: 0 0 0 -50%
                }
            </style>
    
        </head>
    
        <body>
    
            <div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
            <div id="wrapper">
                <div id="scroller">
                    <div id="loading">
                        <img src="img/loading.gif" />
                    </div>
                    <ul id="bookList">
                        <li>
                            <img src="http://img3.cache.netease.com/photo/0003/2015-10-16/B61JB9AK00AJ0003.jpg" />
                            <p>JavaScript高级程序设计(第3版)</p>
                        </li>
                        <li>
                            <img src="http://img4.cache.netease.com/photo/0003/2015-10-16/900x600_B61JB9IR00AJ0003.jpg" />
                            <p>JavaScript语言精粹</p>
                        </li>
                        <li>
                            <img src="http://img3.cache.netease.com/photo/0003/2015-10-16/900x600_B61JBAGS00AJ0003.jpg" />
                            <p>JavaScript DOM编程艺术</p>
                        </li>
                        <li>
                            <img src="http://img6.cache.netease.com/photo/0003/2013-10-09/900x600_9AOEKEKF00AJ0003.jpg" />
                            <p>JavaScript高级程序设计</p>
                        </li>
                        <li>
                            <img src="http://img4.cache.netease.com/photo/0003/2013-10-09/900x600_9AOEKF7E00AJ0003.jpg" />
                            <p>JavaScript 权威指南</p>
                        </li>
                        <li>
                            <img src="http://img5.cache.netease.com/photo/0003/2013-10-09/900x600_9AOEKFQA00AJ0003.jpg" />
                            <p>JavaScript 权威指南</p>
                        </li>
                        <li>
                            <img src="http://img3.cache.netease.com/photo/0003/2013-10-09/900x600_9AOEKGAF00AJ0003.jpg" />
                            <p>基于MVC的JavaScript Web富应用开发</p>
                        </li>
                        <li>
                            <img src="https://img3.doubanio.com/spic/s6245861.jpg" />
                            <p>高性能JavaScript</p>
                        </li>
                    </ul>
                    <div id="pullUp">
                        <span class="pullUpIcon"></span><span class="pullUpLabel">滑动加载...</span>
                    </div>
                </div>
            </div>
            <div id="footer"></div>
        </body>
        <script type="text/javascript">
            var myScroll, pullUpEl, pullUpOffset;
            var opage = 1;
    
            function pullUpAction() {
                $(function() {
                    $.ajax({
                        type: "get",
                        url: "https://api.douban.com/v2/book/search?q=javascript&alt=json&callback=fn1&start=" + (opage++) + "&count=20",
                        cache: false,
                        dataType: "jsonp",
                        jsonpCallback: "fn1",
                        success: function(data) {
                            var odata = data.books;
                            var ohtml = "";
                            for (var i = 0; i < odata.length; i++) {
                                ohtml += "<li><img src='img/07.gif' _src=" + odata[i]["images"]["small"] + "><p>" + odata[i]["title"] + "</p></li>";
                            }
                            $("#bookList").append(ohtml);
                            // src="http://p19.qhimg.com/t015e7d1233fd0f44cf.gif" _src="http://p18.qhimg.com/t01f08740a9982d6928.png"
                            //                            setTimeout(function() {
                            myScroll.refresh();
                            //                            }, 0);
                        },
                        error: function() {
                            alert("出错");
                        }
                    });
                });
            }
    
            function loaded() {
                pullUpEl = document.getElementById('pullUp');
                pullUpOffset = pullUpEl.offsetHeight;
                myScroll = new iScroll('wrapper', {
                    useTransition: true,
                    onRefresh: function() {
                        if (pullUpEl.className.match('loading')) {
                            pullUpEl.className = '';
                            pullUpEl.querySelector('.pullUpLabel').innerHTML = '滑动刷新...';
                        }
                    },
                    onScrollMove: function() {
                        if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {
                            pullUpEl.className = 'flip';
                            pullUpEl.querySelector('.pullUpLabel').innerHTML = '释放刷新...';
                            this.maxScrollY = this.maxScrollY;
                        }
                        
                    },
                    onScrollEnd: function() {
                        if (pullUpEl.className.match('flip')) {
                            if (opage === 3) {
                                pullUpEl.className = 'flip';
                                pullUpEl.querySelector('.pullUpLabel').innerHTML = '没有更多数据了...';
                            } else {
                                pullUpEl.className = 'loading';
                                pullUpEl.querySelector('.pullUpLabel').innerHTML = '加载中...';
                                pullUpAction();
                            }
                        }
                    }
                });
                setTimeout(function() {
                    document.getElementById('wrapper').style.left = '0';
                }, 800);
            }
            document.addEventListener('touchmove', function(e) {
                e.preventDefault();
            }, false);
            document.addEventListener('DOMContentLoaded', function() {
                setTimeout(loaded, 200);
            }, false);
    
    
        </script>
            <script src="http://s0.qhimg.com/lib/jquery/183.js"></script>
            <script src="http://zsall.mobilem.360.cn/stc_mebook/js/jquery.mobile.custom.js"></script>
            <script type="text/javascript" src="http://s4.qhimg.com/static/ed81309f1c18ce0f.js"></script>
    
    </html>
    2019-07-17 18:58:00
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载