iscroll.js 如何判断已经滑动到边缘了
我也是找了好久这个。看了楼上@海农的答案。想了想按照如下方式应该更好一点。
代码中 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 判断是上下滑动还是左右滑动
preventDefault(),所以上下滑不动。建议你使用iscroll4滑动插件来解决这个问题这个需要你加条件判断才可以。touchmove事件中判断坐标X轴数值的大小变化即为用户在左右滑动时。满足此条件时再执行 e.preventDefault()。去网上一搜就能找到该插件。另外。就合理性来讲,你这种使用需求不太合理。左右滑动的同时还要上下滑动。如果用户斜上斜下滑动会怎样?是切换图片呢还是上下滚动内容。在固定的窗口内尽量只执行水平滑动的动作?所以应尽量避免使用这种需求,合理的UI设计会让开发制作人员事半功倍。当用户上下滑动时因为也执行了e.preventDefault(),那样会把包含Y轴数值大小变化也包括在里面,而不是touchmove事件时就执行e