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 相关文章推荐
更优雅的事件触发兼容
Oct 24 Javascript
ExtJs纵坐标值重复问题的解决方法
Feb 27 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
javascript中setInterval的用法
Jul 19 Javascript
前端程序员必须知道的高性能Javascript知识
Aug 24 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
详解使用JS如何制作简单的ASCII图与单极图
Mar 31 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 Javascript
Vue通过WebSocket建立长连接的实现代码
Nov 05 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
js中的this关键字详解
2013/09/25 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
python实现证件照换底功能
2019/08/20 Python
python 字典的打印实现
2019/09/26 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
信息专业个人的自我评价
2013/12/27 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
小班下学期评语
2014/05/04 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
结婚幸福感言
2015/08/01 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS