jQuery实现图片等比缩放以及预加载
jQuery #等比缩放 #预加载2012-06-28 22:00
这里就图片等比缩放以及预加载的效果来尝试下,写写类似的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: "http://yige.org/static/images/icon/jquery.jpg" }); });
相关文章
- jquery禁用右键/文本选择功能/复制按键 2012/06/19
- jquery中$().hover(func1, funct2)的用法 2012/06/14
- jQuery操作select相关方法 2012/06/13
- jQuery动态添加file的方法 2012/06/13
- jQuery常用函数及功能 2012/06/11
- jQuery操作checkbox相关方法 2012/06/11
- jQuery操作radio相关方法 2012/06/08
- jQuery实现简单的隐藏效果 2012/06/04
- jquery扩展方法 2012/06/02
- jquery实现ajax验证登录 2012/06/02