图片预加载3

前面将图片的无序预加载提取出来,并做成了插件,这里做一个表情图片预加载的列子


首先在index.html的中引入jQuery和Perload.js插件,开始布局,这里我用的HBulider,在插入表情图片路径时可使用快速语法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>表情的图片预加载</title>
		<script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
		<style>
			body,p,li,ul{
				margin: 0;
				padding: 0;
			}
			body{
				width: 100%;
				background-color: #EEEEEE;
			}
			a{
				text-decoration: none;
			}
			img{
				width: 5em;
			}
			.face-btn{
				padding: 5px;
				display: block;
				text-indent: 20px;
				color: olivedrab;
				background: url(face_imgs/other/a.jpg) no-repeat 5px;
				background-size: 20px;
				width: 100px;
				margin: 20px auto;
			}
			.face-btn:hover{
				background: url(face_imgs/other/b.jpg) no-repeat 5px;
				background-size: 20px;
			}
			.face-plane{
				background-color: #fff;
				width: 420px;
				border: 1px solid olivedrab;
				padding: 2px;
				display: none;
			}
			.face-title{
				text-align: center;
			}
			#list>li{
				display: inline-block;
				width: 5em;
				border: 2px solid #fff;
				cursor: pointer;
			}
			#list>li:hover{
				border-color: olivedrab;
			}
			.box{
				width: 420px;
				margin: 0 auto;
			}
		</style>
	</head>
	<body>
		<div class="box">
			<a href="javascript:;" class="face-btn">表情大全</a>
			<div class="face-plane">
				<p class="face-title">表情加载中,请稍后</p>
				<!--快速写法ul#list>li*24>img[src='face_imgs/4692/$.gif'],再按TAB,实现自动计数-->
				<!--<ul id="list">
					<li><img src="face_imgs/4692/00.gif" alt="" /></li>
					<li><img src="face_imgs/4692/01.gif" alt="" /></li>
					<li><img src="face_imgs/4692/02.gif" alt="" /></li>
					<li><img src="face_imgs/4692/03.gif" alt="" /></li>
					<li><img src="face_imgs/4692/04.gif" alt="" /></li>
					<li><img src="face_imgs/4692/05.gif" alt="" /></li>
					<li><img src="face_imgs/4692/06.gif" alt="" /></li>
					<li><img src="face_imgs/4692/07.gif" alt="" /></li>
					<li><img src="face_imgs/4692/08.gif" alt="" /></li>
					<li><img src="face_imgs/4692/09.gif" alt="" /></li>
					<li><img src="face_imgs/4692/10.gif" alt="" /></li>
					<li><img src="face_imgs/4692/11.gif" alt="" /></li>
					<li><img src="face_imgs/4692/12.gif" alt="" /></li>
					<li><img src="face_imgs/4692/13.gif" alt="" /></li>
					<li><img src="face_imgs/4692/14.gif" alt="" /></li>
					<li><img src="face_imgs/4692/15.gif" alt="" /></li>
					<li><img src="face_imgs/4692/16.gif" alt="" /></li>
					<li><img src="face_imgs/4692/17.gif" alt="" /></li>
					<li><img src="face_imgs/4692/18.gif" alt="" /></li>
					<li><img src="face_imgs/4692/19.gif" alt="" /></li>
					<li><img src="face_imgs/4692/20.gif" alt="" /></li>
					<li><img src="face_imgs/4692/21.gif" alt="" /></li>
					<li><img src="face_imgs/4692/22.gif" alt="" /></li>
					<li><img src="face_imgs/4692/23.gif" alt="" /></li>
				</ul>-->
			</div>
		</div>
		<script src="../js/Perload.js"></script>
	</body>
</html>
当然,我们的表情图片不是通过html代码直接引入,而是通过js代码无序加载后再引入,只不过这里的图片放在我们本地,所以注释掉上面的ul标签下单代码,使用js生成路径,并赋给imgs数组

var imgs=[];
			
			for(var i=0;i<24;i++){
				if(i<10){
					imgs[i]='face_imgs/4692/0'+i+'.gif';
				}else{
					imgs[i]='face_imgs/4692/'+i+'.gif';
				}
			}
通过点击时间触发图片加载,并且生成图片布局

$('.face-btn').click(function(e){
				//禁止事件冒泡,否则始终隐藏面板
				e.stopPropagation()
				$('.face-plane').show()
				$.perload(imgs,{
					choose:'unoredered',
					all:function(){
					var html='';
					html+='<ul id="list">';
					for(var i=0;i<imgs.length;i++){
						html+='<li><img src="' +imgs[i]+ '"/></li>';
					}
					html+='</ul>';
					setTimeout(function(){
						$('.face-plane').html(html);
					},1000)
					}
				})
			})
			$(document).on('click',function(){
				$('.face-plane').hide()
			})
这里尤其要注意 的时,点击时间的冒泡事件,因为我们对document也设定了点击事件,为了防止直接点的冒泡,所以在子节点的触发函数中,对时间对象禁止事件冒泡e.stopPropagation(),好了,这样表情的加载完成了,是不是很简单呢

index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>表情的图片预加载</title>
		<script src="../js/jquery-2.1.0.js" ></script>
		<style>
			body,p,li,ul{
				margin: 0;
				padding: 0;
			}
			body{
				width: 100%;
				background-color: #EEEEEE;
			}
			a{
				text-decoration: none;
			}
			img{
				width: 5em;
			}
			.face-btn{
				padding: 5px;
				display: block;
				text-indent: 20px;
				color: olivedrab;
				background: url(face_imgs/other/a.jpg) no-repeat 5px;
				background-size: 20px;
				width: 100px;
				margin: 20px auto;
			}
			.face-btn:hover{
				background: url(face_imgs/other/b.jpg) no-repeat 5px;
				background-size: 20px;
			}
			.face-plane{
				background-color: #fff;
				width: 420px;
				border: 1px solid olivedrab;
				padding: 2px;
				display: none;
			}
			.face-title{
				text-align: center;
			}
			#list>li{
				display: inline-block;
				width: 5em;
				border: 2px solid #fff;
				cursor: pointer;
			}
			#list>li:hover{
				border-color: olivedrab;
			}
			.box{
				width: 420px;
				margin: 0 auto;
			}
		</style>
	</head>
	<body>
		<div class="box">
			<a href="javascript:;" class="face-btn">表情大全</a>
			<div class="face-plane">
				<p class="face-title">表情加载中,请稍后</p>
				<!--快速写法ul#list>li*24>img[src='face_imgs/4692/$.gif'],再按TAB,实现自动计数-->
				<!--<ul id="list">
					<li><img src="face_imgs/4692/00.gif" alt="" /></li>
					<li><img src="face_imgs/4692/01.gif" alt="" /></li>
					<li><img src="face_imgs/4692/02.gif" alt="" /></li>
					<li><img src="face_imgs/4692/03.gif" alt="" /></li>
					<li><img src="face_imgs/4692/04.gif" alt="" /></li>
					<li><img src="face_imgs/4692/05.gif" alt="" /></li>
					<li><img src="face_imgs/4692/06.gif" alt="" /></li>
					<li><img src="face_imgs/4692/07.gif" alt="" /></li>
					<li><img src="face_imgs/4692/08.gif" alt="" /></li>
					<li><img src="face_imgs/4692/09.gif" alt="" /></li>
					<li><img src="face_imgs/4692/10.gif" alt="" /></li>
					<li><img src="face_imgs/4692/11.gif" alt="" /></li>
					<li><img src="face_imgs/4692/12.gif" alt="" /></li>
					<li><img src="face_imgs/4692/13.gif" alt="" /></li>
					<li><img src="face_imgs/4692/14.gif" alt="" /></li>
					<li><img src="face_imgs/4692/15.gif" alt="" /></li>
					<li><img src="face_imgs/4692/16.gif" alt="" /></li>
					<li><img src="face_imgs/4692/17.gif" alt="" /></li>
					<li><img src="face_imgs/4692/18.gif" alt="" /></li>
					<li><img src="face_imgs/4692/19.gif" alt="" /></li>
					<li><img src="face_imgs/4692/20.gif" alt="" /></li>
					<li><img src="face_imgs/4692/21.gif" alt="" /></li>
					<li><img src="face_imgs/4692/22.gif" alt="" /></li>
					<li><img src="face_imgs/4692/23.gif" alt="" /></li>
				</ul>-->
			</div>
		</div>
		<script src="../js/Perload.js"></script>
		<script type="text/javascript">
			var imgs=[];
			
			for(var i=0;i<24;i++){
				if(i<10){
					imgs[i]='face_imgs/4692/0'+i+'.gif';
				}else{
					imgs[i]='face_imgs/4692/'+i+'.gif';
				}
			}


			$('.face-btn').click(function(e){
				//禁止事件冒泡,否则始终隐藏面板
				e.stopPropagation()
				$('.face-plane').show()
				$.perload(imgs,{
					choose:'unoredered',
					all:function(){
					var html='';
					html+='<ul id="list">';
					for(var i=0;i<imgs.length;i++){
						html+='<li><img src="' +imgs[i]+ '"/></li>';
					}
					html+='</ul>';
					setTimeout(function(){
						$('.face-plane').html(html);
					},1000)
					}
				})
			})
			$(document).on('click',function(){
				$('.face-plane').hide()
			})
		</script>
	</body>
</html>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值