//加载zepto插件
<script>
//定义图片的数量
var total = 17;
//获取屏幕的宽度
var zWin = $(window);
//定义渲染图片的方法
var render = function(){
//图片的间距
var padding = 2;
//图片存放位置的宽度
var winWidth = zWin.width();
//计算图片的宽度,以一行排列4张图为例,共有3个padding,取它的整数
var picWidth = Math.floor(winWidth - padding * 3)/4);
//定义图片的节点
var tmpl = '';
//循环获取这些图片,i=1从显示第一张图起
for(var i = 1; i < total; i++){
//不是所有图片都有padding-top,因此要重新定义padding
var p = padding;
//图片的src
var imgSrc = 'img/' + i + '.jpg';
//判断是不是第一张图片,第一张图片是没有padding-top
if(i%4 == 1){
//如果是第一张
p = 0;
}
//图片的宽高都设为一样,并将图片地址通过canvas画出来
tmpl += '<li style="width:"' + picWidth + 'px;height:' + picWidth + 'px;padding-top:'
+ padding + 'px"><canvas id = "cvs_" + i + '"></canvas></li>"'; //首先要,new一个图像的对象,用于存储图片信息
var imageObj = new Image();
//为这个对象指定唯一的标识
imageObj.index = i;
//加载这个对象
imageObj.onload = function(){
//定义canvas的绘图环境,并指定canvas的id为唯一标识,一张图片一个ID
var cvs = $('#cvs_' + this.index[0].getContext('2d'));
//定义这个canvas的宽高
cvs.width = this.width;
cvs.height = this.height;
//调用canvas的绘图方法,this为当前图像,后面两个0,代表canvas的偏移量:X,Y,可以手动调整
cvs.drawImage(this,0,0);
}
//给这个图像对象添加地址引用
imageObj.src = imgSrc;
}
}
</script>

canvas代替imgage,可以有效的提高大图片加载的速度!的更多相关文章

  1. 以最省内存的方式把大图片加载到内存及获取Exif信息和获取屏幕高度和宽度的新方法

    我们在加载图片时经常会遇到内存溢出的问题,图片太大,我们加载图片时,一般都是用的如下一般方法(加载本地图片): /** * 不作处理,去加载图片的方法,碰到比较大的图片会内存溢出 */ private ...

  2. WPF 大数据加载过程中的等待效果——圆圈转动

    大家肯定遇到过或将要遇到加载大数据的时候,如果出现长时间的空白等待,一般人的概念会是:难道卡死了? 作为一个懂技术的挨踢技术,即使你明知道数据量太大正在加载,但是假如看不到任何动静,自己觉得还是一种很 ...

  3. 解决父类加载iframe,src参数过大导致加载失败

    原文:解决父类加载iframe,src参数过大导致加载失败 <iframe src="*******.do?param=****" id="leftFrame&qu ...

  4. 深入探索Glide图片加载框架:做了哪些优化?如何管理生命周期?怎么做大图加载?

    前言 Glide可以说是最常用的图片加载框架了,Glide链式调用使用方便,性能上也可以满足大多数场景的使用,Glide源码与原理也是面试中的常客. 但是Glide的源码内容比较多,想要学习它的源码往 ...

  5. asp.net中TreeView的大数据加载速度优化

    由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height ...

  6. Android Camera开发系列(上)——Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片

    Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 最近也是在搞个破相机,兼容性那叫一个不忍直视啊,于是自己翻阅了一些基本的资料,自己实现了一 ...

  7. [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]

    我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataPr ...

  8. 在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度<转>

    为了降低tomcat服务的压力,把页面上的图片采用windows版的nginx进行加载,由于有些图片比较大,加载特别的慢,所以在nginx中打开了gzip的压缩功能.加载图片的速度快了很多. 通过站长 ...

  9. 问题1:canvas绘制图片加载不出来

    <head> <script src="js/index.js" type="text/javascript" charset="u ...

随机推荐

  1. Python3 模块 -- Fabric自动化模版

    安装 pip3 install fabric3 创建软连接 find / -type f -name "fab" /usr/local/python3/bin/fab ln -s ...

  2. RocketMQ事务消息实现分析

    这周RocketMQ发布了4.3.0版本,New Feature中最受关注的一点就是支持了事务消息: 今天花了点时间看了下具体的实现内容,下面是简单的总结. RocketMQ事务消息概要 通过冯嘉发布 ...

  3. Linux 在文件夹的所有文件中查找某字符

    命令: grep -r -e string directory eg: 在 /home 目录下的所有文件中查找包含 test 字符串的文件. grep -r -e "test" / ...

  4. python 时间模块time,datetime

    模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...

  5. MySQL:进阶之视图函数

    一,视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 使用视图我们可以把查询过程中的临时 ...

  6. 2018 ACM-ICPC Asia Beijing Regional Contest (部分题解)

    摘要 本文主要给出了2018 ACM-ICPC Asia Beijing Regional Contest的部分题解,意即熟悉区域赛题型,保持比赛感觉. Jin Yong’s Wukong Ranki ...

  7. dd、split、csplit命令

    在Linux最常用的文件生成和切片工具是dd,它功能比较全面,但无法以行为单位提取文件数据,也无法直接将文件按大小或行数进行均分(除非借助循环).另两款数据分割工具split和csplit能够比较轻松 ...

  8. Go基础系列:常量和变量

    常量(Constants)和iota 常量包含不会发生更改的数据.常量的数据类型只能是boolean.number(int/float/complex)或string. 定义方式: const NAM ...

  9. 翻译:delete语句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:DELETE语句的译文. 原文:https://mariadb.com/kb/en/delete/ 我提交到MariaDB官方手册的译文:https://mariadb. ...

  10. [转]js串口通信 调用MSCOMM32控件 链接电子秤

    本文转自:https://www.cnblogs.com/x-j-p/p/7819724.html 硬件环境:RS232转USB串口线*1 电子秤*1(本人采用G&G E600Y-C型号称重仪 ...