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----文件操作
Jan 18 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
May 31 Javascript
onkeydown事件解决按回车键直接提交数据的需求
Apr 11 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
怎么判断js脚本加载完成
Feb 28 Javascript
js使用for循环查询数组中是否存在某个值
Aug 12 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
jQuery搜索同辈元素方法
Feb 10 Javascript
JS打印组合功能
Aug 04 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
文件上传,iframe跨域数据提交的实现
Nov 18 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 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 header()函数语法及使用代码
2013/11/04 PHP
Chrome Web App开发小结
2014/09/04 PHP
PHP发送短信代码分享
2015/08/11 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
jQuery 位置插件
2008/12/25 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
python中from module import * 的一个坑
2014/07/20 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python中拆分字符串的操作方法
2019/07/23 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python 画函数曲线示例
2019/12/04 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
网络教育毕业生自我鉴定
2013/10/10 职场文书
医科学校毕业生自荐信
2013/11/09 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
海南地接欢迎词
2014/01/14 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript