JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载


Posted in Javascript onJune 28, 2012

JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载

以前对于JavaScript总是在用到的时候在页面上写几个函数,基本没考虑到函数的封装与重用,最近有个项目可能对于这方面要求有点高,所以就研究了下类似jQuery的封装。

这里就图片等比缩放以及预加载的效果来尝试下,写写类似的JavaScript代码。

图片等比缩放以及预加载的效果如下(预加载效果有时候会不是很明显):

JS主要代码如下:

(function() { 
var yQuery = (function() { 
var yQuery = function() { 
return yQuery.fn.init(); 
}; 
yQuery.fn = yQuery.prototype = { 
init: function() { 
return this; 
}, 
//图片等比缩放以及预加载方法申明 但是感觉这样写(return new imgResizeBox(e))很别扭 请高手赐教 
imgResize: function(e) { 
return new imgResizeBox(e); 
} 
}; 
//image图片处理 
var imgResizeBox = function(e) { 
//image参数 
setting = { 
imgId: "", //图片的容器的ID 比如.viewArea img 
height: 0, 
width: 0, 
loading: "images/lightbox-ico-loading.gif" 
}; 
$.extend(setting, e, setting); //参数替换 
var images = $(setting.imgId); //获取所有图片 
$(images).hide(); //隐藏 
var loading = new Image(); //预加载图片 
loading.className = "loading"; 
loading.src = setting.loading; 
$(images).after(loading); 
//预加载函数 
var perLoading = function($this) { 
var img = new Image(); 
img.src = $this.src; 
if (img.complete) { 
computeImg.call($this); 
return; 
}; 
img.onload = function() { 
computeImg.call($this); 
img.onload = function() { }; 
}; }; 
//图片缩放处理,以及图片显示函数 
var computeImg = function() { 
var m = this.height - setting.height; 
var n = this.width - setting.width; 
if (m > n) 
this.height = this.height > setting.height ? setting.height : this.height; 
else 
this.width = this.width > setting.width ? setting.width : this.width; 
$(this).next(".loading").remove(); 
$(this).show(); 
}; 
//循环调用预加载函数 
return $(images).each(function() { 
perLoading(this); 
}); 
} 
return yQuery; 
})(); 
window.yQuery = window.$$ = yQuery(); 
})();

调用代码如下:
$(document).ready(function() 
{ 
$$.imgResize({ imgId: ".viewArea img", height:160, width:270, loading: "https://3water.com/images/2012/155618/2012062710243954.gif" }); 
});

最后附上简单的源码: jsDemo_3water.rar
Javascript 相关文章推荐
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
Sep 14 Javascript
JavaScript instanceof 的使用方法示例介绍
Oct 23 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
vue.js select下拉框绑定和取值方法
Mar 03 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 Javascript
Fixie.js 自动填充内容的插件
Jun 28 #Javascript
Javascript的各种节点操作实例演示代码
Jun 27 #Javascript
妙用Jquery的val()方法
Jun 27 #Javascript
jQuery.extend 函数的详细用法
Jun 27 #Javascript
浅谈Javascript事件处理程序的几种方式
Jun 27 #Javascript
javascript 事件处理程序介绍
Jun 27 #Javascript
jquery 获取自定义属性(attr和prop)的实现代码
Jun 27 #Javascript
You might like
第1次亲密接触PHP5(2)
2006/10/09 PHP
一个简单的PHP入门源程序
2006/10/09 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
跟老齐学Python之总结参数的传递
2014/10/10 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
python获取整个网页源码的方法
2020/08/03 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
喝酒检查书范文
2014/02/23 职场文书
员工试用期自我评价
2014/09/18 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
安徽导游词
2015/02/12 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
食品安全主题班会
2015/08/13 职场文书
导游词之西安骊山
2019/12/03 职场文书