前端懒加载图片

4 篇文章 0 订阅
<style>
.bg-img-load{
background-img:url("loading 图的 url ");/* 这是给 使用背景图的,使用img的 得更改其src 属性; */
}
</style>
var body = $("body").get(0);
var n = 0;//存储图片加载到的位置,计数 看加载了几次
body.onscroll = function () {
    scrollLoad(this.offsetHeight);
};

function scrollLoad(seeHeight) {
//可以是img 或者 背景图  原理就是 把 图片统一修改为loading图 然后在滚动到当前图片时,把其链接更改为 原图链接;
// 如果为了更准确定位 其实 还可以用上图片预加载  先预加载原图 得到原图的比例 根据实际情况计算出其高度与loading图的高度差;响应增加或减少 
// 这样效率不好;
  $(".bg-img-load,.img-load").each(function (i) {
        var obj = $(this);//本来是 打算直接用 this.offsetTop 的 但是得到的值 一直是0 不知道为什么 就用 jquery 了
        if (obj.offset().top < seeHeight) {
            n++;
            console.info(n);//计数
            if (obj.is("img")) {
                obj.attr("src", obj.attr('data-src'));//data-src的值 就是图片的链接  根据实际情况 操作;
                obj.removeClass("img-load");
            } else {
                obj.removeClass("bg-img-load");//呼应上面的css样式;
            }
        } else {
            return false;//不继续遍历之后的图片;性能上的小优化;
        }
    });
}

scrollLoad(body.offsetHeight * 1.5);//*1.5 也可以是 *2 是为了适应 有的原图比loading图矮  导致初次加载的时候 出现 页面上有几个图 显示的是loaidng图;
可以 再加个定时器 0.3秒 执行三次 这样最大程度避免
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端图片懒加载(Image Lazy Loading)和路由懒加载(Route Lazy Loading)是两种不同的优化技术,用于提用户体验和网站性能。 1. **图片懒加载**: - 图片懒加载是一种延迟加载策略,当用户滚动到图片所在位置时才加载图片,而不是在页面加载初期就全部加载。这有助于减少初始页面加载时间,尤其是在内容较多或图片数量较大的情况下。 - 常见实现方式包括使用Intersection Observer API(Intersection Observer API是一个浏览器原生API,用于检测元素是否进入视口),或者利用HTML的`<img>`标签的`srcset`和`loading`属性,如`loading="lazy"`。 - 相关问题: 1. 如何使用Intersection Observer API实现懒加载? 2. `srcset`和`loading="lazy"`如何协同工作? 3. 图片懒加载对SEO有影响吗? 2. **路由懒加载**: - 路由懒加载是针对单页应用(SPA)的一种优化,只在用户导航到特定路由时才加载该路由对应的组件或模块,而不是一开始就下载所有可能的页面内容。 - 这通常在服务器端渲染(SSR)、动态导入(Dynamic Import)或路由预加载(Preloading)时使用,比如React的`import()`函数或Vue的`require()`。 - 相关问题: 1. 如何在Vue中实现路由懒加载? 2. SSR和路由懒加载有什么区别? 3. 使用动态导入时如何处理异步依赖? 两者都是前端性能优化的重要手段,可以帮助提网页的加载速度和用户交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值