首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS图片预加载插件

在开发H5项目中有时候会遇到要加载大量图片的情况,利用预加载技术可以提高用户浏览时的体验。  ...1)概念: 懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。 预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。...--无序预加载需要写进度条,当加载完毕后才能操作; 有序预加载可以不写进度条,加载完第一张后立即加载第二张、第三张、第四张... --> 预加载的图片 $.preload(imgs, { //每张图片加载(load事件)一次触发一次each() each...each: null, //每一张图片加载完毕后执行 all: null //所有图片加载完毕后执行 }; //有序预加载 PreLoad.prototype

16.8K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    分享:纯 css 瀑布流 和 js 瀑布流

    博客地址:https://ainyi.com/60 分享一次纯 css 瀑布流  和 js 瀑布流 纯 css 写瀑布流 1.multi-columns 方式: 通过 Multi-columns 相关的属性...看到这里,我们可以发现,使用纯 css 写瀑布流,每一块 item 都是从上往下排列,不能做到从左往右排列: ? 这样子若是动态加载图片的瀑布流,体验就会很不好 我们想要的是这样: ?...这样做只能通过 js 来写瀑布流 js 写瀑布流: html 结构与上面类似,这里我用图片来做示例: 1 2 瀑布流实现方式: css 的绝对定位方式:根据每张图片的位置设置 top 和 left 值: 1 //瀑布流效果 2 //这里有一个坑(已经修复): 3 //因为是动态加载远程图片,在未加载完全无法获取图片宽高...4 //未加载完全就无法设定每一个item(包裹图片)的top。

    8.9K40

    图片预加载

    背景 利用图片的预加载技术获得更好的用户体验 什么是有序预加载和无序预加载 jQuery插件的写法 图片预加载,预知用户将要发生的行为,提前加载用户所需的图片 网站loading页 image.png...局部图片的加载 图片相册之结构和样式 无序加载,有序加载 image.png 图片预加载: 分类: 1:无序加载 2:有序加载 清除下滑线:text-decoration:none; data-control...src="js/index2-4.js"> // 定义一个图片数组 var imgs = [ 'https://github.com...}else{ load(); } count++; }); imgObj.src=imgs[count]; } 图片加载preload.js (function ($) { function..._unoredered(); } } PreLoad.DEFAULTS = { order: 'unordered', // 无序预加载 each: null, // 每一张图片加载完毕后执行

    2.3K30

    图片瀑布流,so easy!

    什么是图片瀑布流 用一张花瓣网页的图片布局可以很清楚看出图片瀑布流的样子: ?...简单来说,就是有很多图片平铺在页面上,每张图片的宽度相同,但是高度不同,这样错落有致的排列出 n 列的样子很像瀑布,于是就有了瀑布流图片一说。...实现原理 1、第一种方式 第一种方式前提是:图片的宽度固定,但是列可变(根据屏幕大小) 通过上面的介绍,我们知道要实现瀑布流的前提是宽度一致(假如为100px),高度可以不相同。...然后遍历图片,将图片放入容器高度最小的容器中即可。 这里我们使用js来添加图片,而不是事先写好在html中了。 实现代码 <!...$(img).css("width", "100%"); // 当图片加载完后 $(img).on("load", loadHandler);

    1.6K10

    js - 预加载+监听图片资源加载制作进度条

    因为功能的特殊性,就要求我们提前监听页面的静态图片是否全部加载完毕。即处理预加载。...原来页面加载完毕后刷新,再展示的图片都是缓存的图,而load又监听不到缓存的图。 要了我的老命了。 于是我又找,什么方法能监听缓存的图啊? 目标锁定了js里的img.complete。...注意划重点是js的属性。...所以这里使用上要注意,因为我获取的dom对象是jq的,要转成js的再调complete属性,于是代码直接是: if(MyImg[0].complete){ // 用于缓存图片 sumAdd...但是到手机上发现,会有6张缓存图1张加载图,导致下边要说的加载进度计算错误,先是变成70%,又变回20%。 后来才改成这两种情况都累加到一处了。 四、预加载进度计算并展示 好了,现在需求升级。

    9.8K22

    Vue 图片预加载

    在媒体资源较多的情况下渲染页面,即使采用了CDN,但如果客户端受带宽限制,资源的加载会很慢。页面资源(通常是图片)加载慢会影响动画效果,甚至使页面看起来很卡顿。...为了解决这一问题,可以使用预加载的方式,在页面打开之前,提前将其所需的资源加载到浏览器缓存。...在Vue中,可以将预加载的操作放在合适的生命周期钩子函数内,比如在前一个组件挂载后就加载后一个组件所需的资源。以下是Vue3组合式api写法。...2.jpg", "https://cdn.example.com/3.jpg", "https://cdn.example.com/4.jpg", ]; //图片预加载...currentSrc = '' img.src = imgList[i] img.onload = function (e) { //二次缓存,主要针对带中文的图片链接

    2.5K30

    分享一次纯 css 瀑布流 和 js 瀑布流

    博客地址:https://ainyi.com/60 现在百度图片,360 图片搜索,都是以一种瀑布流的形式展示,那么接下来,分享一波纯 css 瀑布流 和 js 瀑布流 纯 css 写瀑布流 multi-columns...,每一块 item 都是从上往下排列,不能做到从左往右排列: [kc4aje4u6f.jpeg] 这样子若是动态加载图片的瀑布流,体验就会很不好 我们想要的是这样: [no351tx20r.jpeg]...要实现如上,只能通过 js 来写瀑布流 js 写瀑布流 html 结构与上面类似,但这里我用图片来做示例 ...瀑布流实现方式 css 的绝对定位方式:根据每张图片的位置设置 top 和 left 值 // 瀑布流效果 // 这里有一个坑(已经修复): // 因为是动态加载远程图片,在未加载完全无法获取图片宽高...// 未加载完全就无法设定每一个 item(包裹图片)的 top。

    2.4K40

    图片预加载和懒加载

    懒加载:在需要显示图片的时候才去加载图片。 预加载:在还没显示的时候就加载图片。 在说预加载和懒加载之前。我们先说说图片加载的时机。...预加载 虽然页面还不需要显示图片,但是我们已经把这些图片加载下来了,只是不显示这些图片,我们都知道浏览器是会缓存请求过的图片,预加载就是基于这个原理。...预加载方法 1、使用css背景图片 我们写一些样式,然后把图片的地址放到背景图片里面,让图片隐藏,也可以设置背景图片位置偏移出这个页面。...4、使用Ajax 就是发起一个get请求,地址是这张图片,因为请求后浏览器会缓存,这张图片就预加载到了本地。...其实懒加载和预加载都是需要看需要决定的,比如需要几十张图片显示,但是有优先顺序,就使用懒加载,如果是只有几张小图,页面渲染速度也够快,想要交互的时候响应快速,使用预加载。

    2.8K20

    vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多

    一、思路分析和效果图   用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果。...然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果; 选择哪种方式实现瀑布流,这里选择绝对定位方式; 关键问题:由于每张图片的宽高不一样,而瀑布流中要求所有图片的宽度一致,高度随宽度等比缩放...这里选择用JS中的Image类,通过预加载图片的方式提前获取图片宽高,另外通过一个临时变量来计算是否所有图片的高度已经得到。当所有的图片高度获取后,开始渲染页面。...tempIndex, 1); } } this.loadImagesHeight(tempList); //模拟预加载图片...}) }, 2.2、预加载图片,存储图片高度   获取数据后,遍历数据数组,预加载图片,计算图片缩放后的高度,存储起来。

    3.4K10

    开发图片预加载框架

    HTML5学堂:在此前的一篇文章当中,我们讲解了图片预加载,对图片预加载的知识以及原理等内容均进行了一些讲解。...对于我们开发人员来说,几乎每个移动端的项目(专题类和游戏类)均需要使用到图片预加载,那么如何让自己不再每次都重新书写图片预加载的代码呢?...(为了方便大家查看,我已经把之前的成品代码放置在了步骤一中),如果想要回看具体的“图片预加载”的知识,可以回复“预加载”到公众号 基本功能需求分析与实现流程 1 调整代码并调整变量名称(此步骤纯粹是为了防止变量名对大家产生的影响...不难想象,预加载,需要有预加载的对象,也就是那些图片,这个属性必不可少。...利利温馨提醒:该文章从此步骤开始,难度系数加大,学习该知识的先决条件为面向对象、原型继承(混合模式)以及图片预加载。

    1.3K110

    【HTML5】图片预加载

    image = new Image(); image.src = "images/01.jpg"; context.drawImage(image, 0, 0); 不过我们会发现这样写是无法显示出图片的...,因为图片并没有加载完全,我们就调用了drawImage方法,我们可以使用img的onload方法,使图片加载完全后 在执行drawImage操作,代码如下 var image = new Image(...image.src = "images/01.jpg"; image.onload = function() { context.drawImage(image, 0, 0); } 或者使用标签先加载图片... 然后使用getElementById来获得图片对象 var image = document.getElementById...('image'); 但是在图片较多的情况下,使用上面两种方式都不是太优雅,我们可以使用下面的方法,等待所有图片加载完全后,再执行其他操作 document.addEventListener("DOMContentLoaded

    2.8K20

    多栏布局与JS实现瀑布流

    css3属性之多栏布局与JS实现瀑布流    背景:之前打算自己总结一下flex布局的知识点,发现自己无从下手,原因在何处:我反思了一下,其实原因很简单,使用的次数少,更多的时间使用了百分比,浮动和定位解决...实现瀑布流  给自己安利一波吧,看到网上很多瀑布流的效果,哇,简直棒极了有没有;于是我迫不及待的打开V**,打开了pinterest的官网。...自己也梳理梳理逻辑:js代码之前,一定要先搞清逻辑,再动手写代码> 我们都不陌生瀑布流是同宽的,但是高度不一,js主要的工作就是根据高度来进行布局, 1)当一行排满后,准备排第二行的时候,...把第一个图片放到上一行图片高度最小处,以此类推, 另外有一点就是自动加载,这里我做一个条件来判断是否加载, 2)当最后一个的元素距离网页顶部的高度(offsetTop)+ 这个元素高度的一半...< 垂直方向上滚轮的量(scrollTop) + 网页可见区域的高 时: 我们就加载图片(这里我没有用ajax请求,我用了一个json数组来模拟json数据) 要搞清楚offsetTop、scrollTop

    3K90

    分享 1个原生 JS 瀑布流案例

    瀑布流布局中的图片有一个核心特点 —— 等宽不定等高,瀑布流布局在国内网网站都有一定规模的使用,比如pinterest、花瓣网等等。那么接下来就基于这个特点开始瀑布流探索之旅。...waterfall-box { float: left; width: 200px; padding-left: 10px; padding-bottom: 10px; } 至此完成了瀑布流的基本布局...联想到业务场景中瀑布流中下拉加载的图片一般都来自 Ajax 异步获取,那么加载的数据必然不能写死在库里,期望能实现如下调用(此处借鉴了 waterfall 的使用方式), const waterfall.../订阅模式来实现它,关于发布/订阅模式,之前在Node.js 异步异闻录 有介绍它。...小优化 为了防止 scroll 事件触发多次加载图片,可以考虑用函数防抖与节流实现。

    1.9K20

    小程序实现瀑布流及懒加载无限刷新

    这两天在仿图虫,其中涉及到一个需求就是很多页面需要进行瀑布流加载,网上搜了很多教程,其中有一个思路挺好的,稍微有点复杂,但确实是我想要的效果。 ?...leftHight + tmp.itemHeight; } else { rightList.push(tmp); rightHight = rightHight + tmp.itemHeight; } 瀑布流展示图片的时候...所以如果你们的数据没有宽高或宽高比,很难实现瀑布流。虽然可以通过bindload获得图片宽高,但会对性能以及用户体验有很大影响,不推荐这么做。可以和后台商量下,看如何加上宽高数据。...中配置的全局变量 //app.js App({ onLaunch: function() { // 获取系统状态栏信息 wx.getSystemInfo({ success: e...({ leftList: leftList, rightList: rightList, }); }) }, }) 其中getbottom为触底加载函数

    6.1K22
    领券