javascript - iScroll5怎么判断滑动到底部呢?
黄舟
黄舟 2017-04-11 11:12:18
[JavaScript讨论组]

在api里面没有找到呢

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(6)
怪我咯

我也是找了好久这个。看了楼上@海农的答案。想了想按照如下方式应该更好一点。
代码中 this.y-minY>10 这里的10是加载阈值(可以理解为滚动元素下边缘离开父容器下边缘),可以实际情况自行调整。

myScroll.on('scrollStart', function() {
        
  minY = this.y;
  // console.log(this);
});

myScroll.on('scroll', function() {
        
  minY = minY<this.y ? minY : this.y;
  // console.log(this);
});

myScroll.on('scrollEnd', function() {
    minY = minY<this.y ? minY : this.y;
  //
  if (this.y-minY>10 && (this.directionY===1)) {
    //加载
  }
});

只在scrollStart和scrollEnd中判断有个小情况应该是不能处理,假如滚动元素目前位置没有达到最底部,猛的向上一划,最底下的元素会滑动到离开父容器底部一段距离,这时候应该加载新数据,但是pullStart 并不等于 this.y,所以不会加载新数据。

天蓬老师

这个需要自己监听滚动事件判断的。监听 iScroll的scrollEnd事件并计算。
文档

天蓬老师

如果wrapper嵌套在别的标签里,其父集position不可是设置为relative或者absolute

PHP中文网

如果你用到jquery,可以用jquery判断网页到达底部,如果没有用到,你也可以按照这个思路判断:

 $(window).scroll(function(){
    var scrollTop=$(this).scrollTop();
    var scrollHeight=$(document).height();
    var windowHeight=$(this).height();
    if(scrollTop+windowHeight===scrollHeight){
      alert('bottom');
    }
  });
天蓬老师

看了amazeui中使用iscroll是这么定义,在iscroll的事件scrollStart的时候,存储this.y到一个变量(pullStart),然后在scrollEnd的时候去判断pullStart是否等于当前的this.y,如果相等,再结合directionY的方向判断是否是上滑,是的话,说明是到底了。。。

        myScroll.on('scrollStart', function() {
        
          pullStart = this.y;
          // console.log(this);
        });

        myScroll.on('scrollEnd', function() {

          // pull up to load more
          if (pullStart === this.y && (this.directionY === 1)) {
            //加载
          }
        });
      };
PHP中文网

myscroll.on('scrollEnd', function () {

    if (this.y == this.maxScrollY) {
        console.log('到底了')
    }
    });
    呃 我可能考虑的没大大们的多
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号