Web前端的学习顺序及内容是什么?

关于上周跟大家讲的框架封装,朋友目前从事移动开发,说ionic很方便。

2 02 3 年3 月,尝试使用ionic做了一个简单的天气APP,组件确实很好用。
他们公司还是用ionic3 ,据说兼容性很好。

我不确定这部分。
ionic4 和reactnative结合的开发效率可能取决于具体的项目需求。
我不确定这部分
这取决于你。

jquery怎么判断滚动条滚到页面底部并执行事件

老实说,这些 DOM 元素非常有趣,每次想到它们我都会反复思考。
以我上次创建新闻资讯应用程序为例。
向下滚动时处理自动加载功能存在许多陷阱。

clientHeight非常直观——它是div实际占用的空间的高度。
例如,如果您使用 CSS 将 div 的高度设置为 4 00 像素,则其 clientHeight 将为 4 00 像素。
即使内容太多,只要不滚动,大小就会保持在 4 00 像素。
但offsetHeight不同,它甚至还统计了滚动条的粗细。
我记得一位老手告诉我 offsetHeight 类似于“内容的总长度”。
即使将滚动条拖到末尾,其高度也不会改变。

ScrollTop是最神奇的地方。
我在一个使用 Bootstrap 的项目中有一个模态框,突然我注意到滚动条位置随机跳跃。
经过检查,原来是在modal显示的时候scrollTop被重置了。
当时我就傻了,直接用console.log打印scrollTop,发现模态一打开就重置为零了。
这让我明白了scrollTop就像一个“光标”,总是指向当前可见内容的顶部。

为了确定向下滚动的逻辑,我后面使用了一个很酷的操作。
有一张桌子特别长。
如果我直接使用scrollTop == offsetHeight
clientHeight,就​​会出现错误。
你知道为什么吗?因为没有考虑滚动条的宽度!后来我切换到scrollTop >= contentH
viewH
buffer。
缓冲区是滚动条宽度的安全边际 + 5 0 像素。
我记得具体数字是1 3 像素左右,这个需要实际测量。

在实现自动加载时,有一个细节需要注意。
我之前编写了一个查询脚本,每 3 秒检查一次scrollTop。
结果,当用户拖动滚动条时,PPT中的页面就卡住了。
后来他们改用事件监控,就变得顺利多了。
当时还有一个陷阱:监听事件时忘记禁用默认行为,导致拖动滚动条时页面疯狂跳转。
真是太神奇了。

现在想来,最好的部分其实是offsetHeight和clientHeight之间的区别。
它就像一个看不见的“内容长度”,总是固定的。
上次重构一个老项目,发现它和scrollTop的关系其实和页面渲染性能有关。
比率越小,延迟越明显。
后来内容被分成块,比例稳定在0.2 左右,页面变得流畅。

我没有亲自研究过移动设备的实现细节,但我记得的数据表明,大约 1 0% 的 offsetHeight 是一个关键点。
超过这个比率,滚动性能将急剧下降。
然而,这件事太依赖于设备了。
建议使用不同的手机进行测试。