第一百五十七节,封装库--JavaScript,预加载图片
封装库--JavaScript,预加载图片
首先了解一个Image对象,为图片对象
Image对象
var temp_img = new Image(); //创建一个临时区域的图片对象
alert(temp_img); //[object HTMLImageElement]对象
Image对象src属性,属性值是src地址,这个src地址会在后台加载到本地缓存
var temp_img = new Image(); //创建一个临时区域的图片对象
temp_img.src = 'http://www.wallcoo.com/animal/Dogs_Summer_and_Winter/wallpapers/1920x1200/DogsB10_Lucy.jpg';
Image对象,事件
onload //事件,当图片加载成功时触发事件函数
onerror //事件,当图片加载失败时触发事件函数
如:下列
var temp_img = new Image(); //创建一个临时区域的图片对象
temp_img.onload = function () {
alert('图片加载成功,显示图片');
};
temp_img.onerror = function () {
alert('图片加载失败,什么都不干');
};
temp_img.src = 'http://www.wallcoo.com/animal/Dogs_Summer_and_Winter/wallpapers/1920x1200/DogsB10_Lucy.jpg';
//注意:最好把src,写在事件后面,否则ie不兼容
预加载图片,就是当用户查看当前图片时,提前将上一张和下一张图片加载好,当用户查看上一张或者下一张是不用等待加载,
效果图
html
<!--预加载-->
<div id="photo">
<dl>
<dt><img xsrc="img/p1.jpg" yjz="img/p1big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>预加载图片</dd>
</dl>
<dl>
<dt><img xsrc="img/p2.jpg" yjz="img/p2big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p3.jpg" yjz="img/p3big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p4.jpg" yjz="img/p4big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p5.jpg" yjz="img/p5big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p6.jpg" yjz="img/p6big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p7.jpg" yjz="img/p7big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p8.jpg" yjz="img/p8big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p9.jpg" yjz="img/p9big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p10.jpg" yjz="img/p10big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p11.jpg" yjz="img/p11big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl> <dl>
<dt><img xsrc="img/p12.jpg" yjz="img/p12big.jpg" src="img/wait_load.jpg" class="wait_load" alt="" /></dt>
<dd>延迟加载图片</dd>
</dl>
</div>
<div id="photo_big">
<h2 class="tuo"><img src="img/close.png" alt="" class="close"/>预加载图片</h2>
<div class="big">
<img src="img/loading.gif" alt=""/>
<strong class="sl"><</strong>
<strong class="sr">></strong>
<span class="left"></span>
<span class="right"></span>
<em class="index">22222</em>
</div>
</div>
css
/*预加载图片*/
#photo_big {
width:620px;
height:511px;
border:1px solid #ccc;
position:absolute;
display:none;
z-index:;
background:#fff;
}
#photo_big h2 {
height:40px;
line-height:40px;
text-align:center;
font-size:14px;
letter-spacing:1px;
color:#666;
background:url(img/login_header.png) repeat-x;
margin:;
padding:;
border-bottom:1px solid #ccc;
/*margin:0 0 20px 0;*/
cursor:move;
}
#photo_big h2 img {
float:right;
position:relative;
top:14px;
right:8px;
cursor:pointer;
}
#photo_big .big {
width:620px;
height:460px;
padding:10px 0 0 0;
background-color: #333;
}
#photo_big .big img {
display:block;
margin:0 auto;
position:relative;
top:190px;
}
#photo_big .big strong {
display:block;
width:100px;
height:100px;
line-height:100px;
text-align:center;
background:#000;
opacity:;
filter:alpha(opacity=0);
font-size:60px;
color:#fff;
cursor:pointer;
position:absolute;
border-radius: 20px;
}
#photo_big .big strong.sl {
top:210px;
left:20px;
}
#photo_big .big strong.sr {
top:210px;
right:20px;
}
#photo_big .big span {
display:block;
width:300px;
height:450px;
background:#000;
opacity:;
filter:alpha(opacity=0);
position:absolute;
cursor:pointer;
}
#photo_big .big span.left {
top:50px;
left:10px;
}
#photo_big .big span.right {
top:50px;
right:10px;
}
#photo_big .big em {
position:absolute;
top:470px;
right:20px;
color:#fff;
font-size:20px;
font-style:normal;
}
前台js
//预加载图片
//点击弹窗
$('.wait_load').on_click(function () {
$('#suo_ping').xian_shi().zhe_zhao_suo_ping().yi_dong_tou_ming({
'attr': 'o', //动画方式
'target': 50, //目标量
't': 50, //每次动画时间
'step': 5, //跨度
fn: function () {
$('#suo_ping').chuang_kou_shi_jian(function () {
$('#suo_ping').zhe_zhao_suo_ping();
$('#photo_big').yuan_su_ju_zhong();
})
}
});
$('#photo_big').c_css('display', 'block').yuan_su_ju_zhong().tuo_zhuai('tuo'); var temp_img = new Image(); //创建临时图片对象 $(temp_img).yuan_su_shi_jian('load',function () { //当图片加载成功时
$('#photo_big .big img').hq_shu_xing_zhi('src',temp_img.src).yi_dong_tou_ming({
attr:'o',
target:100,
t:30,
step:10
}).c_css('width','600px').c_css('height','450px').c_css('top',0).shzh_tou_ming_du(0);
});
temp_img.src = $(this).hq_shu_xing_zhi('yjz'); //图片加载地址 //图片鼠标划过
//左边
$('#photo_big .big .left').shu_biao_yi_ru_yi_chu(function () {
$('#photo_big .big .sl').yi_dong_tou_ming({
attr:'o',
target:50,
t:30,
step:10
});
}, function () {
$('#photo_big .big .sl').yi_dong_tou_ming({
attr:'o',
target:0,
t:30,
step:10
});
});
//右边
$('#photo_big .big .right').shu_biao_yi_ru_yi_chu(function () {
$('#photo_big .big .sr').yi_dong_tou_ming({
attr:'o',
target:50,
t:30,
step:10
});
}, function () {
$('#photo_big .big .sr').yi_dong_tou_ming({
attr:'o',
target:0,
t:30,
step:10
});
}); //预加载设置
var children = this.parentNode.parentNode; //获取当前元素的父节点的父节点,也就是dl
prev_next(children); //上一张
$('#photo_big .big .left').on_click(function () {
shang_xian(this);
var children = $('#photo_big dl dt img').hq_jd(sh_jd_suo_yin($('#photo_big .big img').hq_shu_xing_zhi('suoy'), $('#photo').sh_jd())).parentNode.parentNode;
prev_next(children);
}); //下一张
$('#photo_big .big .right').on_click(function () {
shang_xian(this);
var children = $('#photo_big dl dt img').hq_jd(xia_jd_suo_yin($('#photo_big .big img').hq_shu_xing_zhi('suoy'), $('#photo').sh_jd())).parentNode.parentNode;
prev_next(children);
}); //共用函数
function shang_xian(_this) {
$('#photo_big .big img').hq_shu_xing_zhi('src', 'img/loading.gif').c_css('width', '32px').c_css('height', '32px').c_css('top', '190px');
var current_img = new Image(); $(current_img).yuan_su_shi_jian('load', function () { //当前图片加载完毕后执行
$('#photo_big .big img').hq_shu_xing_zhi('src', current_img.src).yi_dong_tou_ming({ //从显示图片获取到索引
attr: 'o',
target: 100,
t: 30,
step: 10
}).shzh_tou_ming_du(0).c_css('width', '600px').c_css('height', '450px').c_css('top', 0);
}); current_img.src = $(_this).hq_shu_xing_zhi('src');
} //共用函数
function prev_next(children) {
var prev = sh_jd_suo_yin($(children).hq_suo_yin(), children.parentNode); //获取当前节点的,上一个节点在父元素的索引
var next = xia_jd_suo_yin($(children).hq_suo_yin(), children.parentNode); //获取当前节点的,下一个节点在父元素的索引 var prev_img = new Image(); //预加载上一张图片
var next_img = new Image(); //预加载下一张图片 prev_img.src = $('#photo dl dt img').guo_lv_jie_dian(prev).hq_shu_xing_zhi('yjz'); //预加载上一张图片
next_img.src = $('#photo dl dt img').guo_lv_jie_dian(next).hq_shu_xing_zhi('yjz'); //预加载下一张图片
$('#photo_big .big .left').hq_shu_xing_zhi('src', prev_img.src); //将上一张地址赋值给左点击
$('#photo_big .big .right').hq_shu_xing_zhi('src', next_img.src); //将下一张地址赋值给右点击
$('#photo_big .big img').hq_shu_xing_zhi('suoy', $(children).hq_suo_yin()); //将当前索引赋值给显示图片
//显示图片张数
$('#photo_big .big .index').wen_ben(parseInt($(children).hq_suo_yin()) + 1 + '/' + $('#photo dl dt img').jd_length());
} }); //关闭弹窗
$('#photo_big .close').on_click(function () {
$('#photo_big').c_css('display', 'none');
$('#suo_ping').yi_dong_tou_ming({
'attr': 'o', //动画方式
'target': 0, //目标量
't': 50, //每次动画时间
'step': 5 //跨度
});
$('#photo_big .big img').hq_shu_xing_zhi('src','img/loading.gif').c_css('width','32px').c_css('height','32px').c_css('top','190px'); //关闭弹窗后,恢复默认图片
$('#suo_ping').jie_chu_suo_ping();
});
首先引入封装库
第一百五十七节,封装库--JavaScript,预加载图片的更多相关文章
- 第一百五十二节,封装库--JavaScript,表单验证--年月日注入
封装库--JavaScript,表单验证--年月日注入 效果图 html <div id="reg"> <h2 class="tuo"> ...
- 用javascript预加载图片、css、js的方法研究
预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片.css.js这些静态文件可以被缓存),如果用户访问的页面里面的css.js.图片被预加载了,用户打开页面的速度会快很多,提 ...
- 第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据
第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据 学习要点: 1.JSON语法 2.解析和序列化 前两章我们探讨了XML的结构化数据,但开发人员还是觉得这 ...
- 第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码
第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码 scrapy-redis是一个可以scrapy结合redis搭建分布式爬虫的开 ...
- 第一百四十八节,封装库--JavaScript,菜单切换
第一百四十八节,封装库--JavaScript,菜单切换 首先在封装库封装点击切换方法 /** dian_ji_qie_huan()方法,设置点击切换,将元素设置成点击切换,也就是点击目标元素后,循环 ...
- CSS和JavaScript以及Ajax实现预加载图片的方法及优缺点分析
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画 廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发 ...
- 第一百五十节,封装库--JavaScript,表单验证--密码验证
封装库--JavaScript,表单验证--密码验证 效果图 html <div id="reg"> <h2 class="tuo">& ...
- 第一百五十一节,封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全
封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全 效果图 html <div id="reg"> <h2 class ...
- javascript预加载和延迟加载
延迟加载javascript,也就是页面加载完成之后再加载javascript,也叫on demand(按需)加载,一般有一下几个方法: What can your tired old page, o ...
随机推荐
- dhclient 简介
dhclient 就和它名字一样,用来通过 dhcp 协议配置本机的网络接口. 使用方法就是 #dhclient ifN # ifN 就是 ifconfig 中输出的接口名称,etc. eth0,wl ...
- 【DB2】不同编码格式下的汉字所占字节
UTF-8 (8-bit Unicode Transformation Format) 是一种针对Unicode的可变长度字符编码,又称万国码,它包含全世界所有国家需要用到的字符,是国际编码,通用性强 ...
- Random.org -- 真正的随机数生成器
接触过程序设计的人一定对随机数不陌生.随机数的用途非常广,比方在測试.分布和统计程序.游戏中. 大多数编程语言也提供了随机数库.能够方便的使用. 只是从严格意义上来讲,这些程序生成的随机数并非真正的随 ...
- Linux 添加开机启动项的三种方法
linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh## This scri ...
- String、StringBuilder、StringBuffer对比
参考:http://swiftlet.net/archives/1694 http://www.cnblogs.com/springcsc/archive/2009/12/03/1616326.htm ...
- Sphinx-实战
配置完成后, 有了数据源.索引文件存储位置等, 便可以使用 indexer 工具创建索引, 收集要被检索的数据 -c 指定配置文件 默认使用 etc/sphinx.conf --all 对所有索引重新 ...
- C# 反射只获取自己定义的属性,不获取父类的属性
PropertyInfo[] p = user.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | Bi ...
- js Array.prototype.join.call(arguments,",") 理解
prototype 属性使您有能力向对象添加属性和方法. join() 方法:把数组的所有元素放入一个字符串.元素通过指定的分隔符进行分隔. call() 方法可以用来代替另一个对象调用一个方法. A ...
- 1 bootstrap table null默认显示为 - 要查源码 2 记一个很无语的bug
本来返回的json 3个true 7个false的 结果显示10个true 因为本来是好的 结果判断的问题 给全部赋值true了
- Python 实现根据不同的程序运行环境存放日志目录,Python实现Linux和windows系统日志的存放
说明:在我们开发的时候,有时候是在windows系统下开发的代码,我们的生产环境是Linux系统,更新代码就需要修改日志的环境,本文实现了代码更新,不需要配置日志文件的目录,同样也可以延伸到ip地址 ...