懒加载demo

本文深入探讨了网页中图片懒加载技术的实现原理与应用,通过具体的代码示例,展示了如何利用JavaScript监听滚动事件,动态替换图片源,以提高网页加载速度和用户体验。懒加载技术在现代前端开发中扮演着重要角色,尤其是在包含大量图片的页面中。

demo

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        img {
            display: block;
            margin-bottom: 50px;
            width: 400px;
            height: 400px;
        }
    </style>
</head>

<body>

    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww1.sinaimg.cn/large/006y8mN6gw1fa7kaed2hpj30sg0l9q54.jpg" alt="">
    <img src="default.jpg" data-src="http://ww1.sinaimg.cn/large/006y8mN6gw1fa7kaed2hpj30sg0l9q54.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww1.sinaimg.cn/large/006y8mN6gw1fa7kaed2hpj30sg0l9q54.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">

</body>

<script>
    var n = 0,
        imgNum = $("img").length,
        img = $('img');

    lazyload();

    $(window).scroll(lazyload);

    function lazyload(event) {
        for (var i = n; i < imgNum; i++) {
            if (img.eq(i).offset().top < parseInt($(window).height()) + parseInt($(window).scrollTop())) {
                if (img.eq(i).attr("src") == "default.jpg") {
                    var src = img.eq(i).attr("data-src");
                    img.eq(i).attr("src", src);

                    n = i + 1;
                }
            }
        }
    }
</script>
好的,我会为您找到相关的demo。以下是一份简单的qt图片列表懒加载demo代码,仅供参考: ``` #include <QApplication> #include <QListView> #include <QStandardItemModel> #include <QtConcurrent> void loadImage(int index, QStandardItemModel* model) { QImage img; img.load("path_to_image_" + QString::number(index)); if (!img.isNull()) { QStandardItem* item = model->item(index); if (item) { item->setData(QVariant(QPixmap::fromImage(img)), Qt::DecorationRole); } } } int main(int argc, char *argv[]) { QApplication a(argc, argv); QListView listView; QStandardItemModel model; // 填充数据 for (int i = 0; i < 100; ++i) { QStandardItem* item = new QStandardItem(QString::number(i)); item->setIcon(QIcon(":/resources/loading_icon.png")); // 加载中的图标 model.appendRow(item); } listView.setModel(&model); // 列表滚动时触发 QObject::connect(&listView, &QListView::viewPortEntered, [&](){ // 异步加载图片 QtConcurrent::run([&](){ int firstVisible = listView.indexAt(QPoint(0, 0)).row(); int lastVisible = listView.indexAt(QPoint(0, listView.viewport()->height())).row(); int loadCount = 5; // 每次加载的数量 for (int i = firstVisible; i < lastVisible; ++i) { loadImage(i, &model); } }); }); listView.show(); return a.exec(); } ``` 通过这份demo代码,您可以学习和了解如何使用Qt实现图片列表懒加载。当用户滚动列表视图时,系统会异步加载可视范围内的图片,从而提升列表滚动的流畅度。希望能对您有所帮助。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值