// 图片的懒加载
directives: {
// bing 是一个对象 里面有 自定义指定传过来的值 也就是 v-lazy=“item.author.avatar_url” 等号里的数据
// el 可以拿到当前的元素
lazy(el, bing) {
// new IntersectionObserver 创建我们的交叉观察器
let ob = new IntersectionObserver(
(changes) => {
// changes 是个数组包含所有的监听对象和视口的交叉位置
changes.forEach((item) => {
if (item.isIntersecting) { // item.isIntersecting == 1 为 true
// 当先监听的对象 符合条件
let lazyImg = item.target; // 拿到当前监听的盒子
// 改变src
el.src = bing.value;
// 加载完移除监听
ob.unobserve(lazyImg);
}
});
},
{
// threshold 控制交叉状态在什么养的情况下触发上面的回调
threshold: [1], // 0 一露头 0.5 露一半 1 完全出现
}
);
// 使IntersectionObserver
开始监听一个目标元素。
ob.observe(el);
},
},
**使用: 做了上划加载更多**
* 无限滚动时,最好在页面底部有一个页尾栏(又称[sentinels]( ))。一旦页尾栏可见,就表示用户到达了页面底部,从而加载新的条目放在页尾栏前面。这样做的好处是,不需要再一次调用`observe()`方法,现有的`IntersectionObserver`可以保持使用。
mounted() {
let loading = this.$refs.loading;
let ob = new IntersectionObserver(
(changes) => {
// changes 包含所有的监听对象和视口的交叉位置
changes.forEach((item) => {
// this.tapList.length > 0 防止二次渲染
if (item.isIntersecting && this.tapList.length > 0) {
// 当先监听的对象 符合条件
let lazyImg = item.target; // 当前监听的盒子
this.params.page++;
if (this.tapList.length >= this.total) {
console.log(“到底了”);
loading.innerHTML = “到底了兄弟”;
return;
}
this.getTapListFn();
console.log(this.total);
}
});
},
{
// threshold 门阀 for手 控制交叉状态在什么养的情况下触发上面的回调
threshold: [0], // 0 一露头 0.5 露一半 1 完全出现
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
*如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.youkuaiyun.com/topics/618191877)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!