b站 图片懒加载 禁用

div.r-info.clearfix

div.cover-contain

a.preview

div.lazy-img

 

没加载的是这样:<div class="lazy-img"> <img alt=""> </div>

加载了的是:<div class="lazy-img"> <img alt="" src="//i1.hdslb.com/bfs/archive/a83d24d79a1768dd05e2cd72b8580609907e2ff2.jpg@160w_100h_1c.webp"> </div>

 

查看network-initiator

 

可以通过.__vue__获取到vue实例,然后得到src,然后赋值到html src属性上。不过我就不这么麻烦了,寻找一个更通用的办法

 

 

 

    t.checkInView = function(e, t) {
        if (e) {
            var n = e.getBoundingClientRect()
              , i = t || 0;
            return n.top < window.innerHeight + i && n.bottom >= 0
        }
    }

 

 

 

尝试了transform: scale(0.3); zoom: 0.3; 都不行

好像可以,就是滚动到底部检测不出来,需要先用鼠标中键滚动加载完

 

transform好像比较zoom灵敏点,不知道是什么奇怪原因

 

 

更:缩小界面手动滚动还是有点麻烦,还得肉眼判断哪个图片没有加载,由于 throttle节流的原因,图片固定时间只能加载固定数量。

简单写了段代码。

 

setInterval(() => {
	newFunction();
}, 500);

function newFunction() {
	// 获取所有选中的img元素
	const imgElements = document.querySelectorAll("#history_list img");

	// 遍历所有img元素
	// imgElements.forEach(img => {
	//     // 判断src是否为空
	//     if (img.src === '') {
	//         // 滚动到该元素位置
	//         img.scrollIntoView({ behavior: "smooth", block: "center", inline: "nearest" });
	//     }
	// });
	for (const img of imgElements) {
		// console.log(el);
		// 判断src是否为空
		if (img.src === '') {
			// 滚动到该元素位置
			img.scrollIntoView({
				behavior: "smooth",
				block: "center",
				inline: "nearest"
			});
			break;
		}
	}
}

 

posted @ 2024-04-08 17:33  hrdom  阅读(5)  评论(0编辑  收藏  举报