摘要: 一、前言当一个页面中请求的图片过多,而且图片太大,页面访问的速度是非常慢的,对用户的体验非常不友好;使用图片懒加载,可以减轻服务器的压力,增加页面的访问量,这里主要是总结一下我自己写的图片懒加载组件jQuery.imgLazyLoad;使用该组件应在img标签中设置一个imglazyload-src属性,存放图片地址。二、应用实例demo/** * component: imgLazyLoad 2013/12/12 华子yjh * invoking: jQuery.imgLazyLoad(options) * // 配置对象 options = { container... 阅读全文
posted @ 2013-12-12 13:46 杨君华 阅读(5665) 评论(2) 推荐(5) 编辑
摘要: 一、安装软件1、apache下载地址:http://httpd.apache.org/download.cgi2、php下载地址:http://windows.php.net/download/二、环境配置1、配置网站根目录apache安装成功后,在浏览器输入127.0.0.1或locahost将提示It works!这个提示的页面就在apache的安装目录下(htdocs\index.html),说明htdocs为网站默认根目录,在apache的安装目录下找到conf\httpd.conf配置文件,打开查找DocumentRoot 默认路径,,将默认路径(即是htdocs文件的路径)设置自定 阅读全文
posted @ 2013-12-02 21:44 杨君华 阅读(1024) 评论(2) 推荐(2) 编辑
摘要: 前言:如果你对jQuery.Callback回调对象不了解,或者只掌握其方法,但是没有通过阅读源码理解,可以先阅读前一章jQuery.Callbacks源码解读二,因为只有完全理解jQuery.Callback源码,才能真正的理解并掌握jQuery.Deferred递延对象。源码:// jQuery 1.10.2jQuery.extend({ Deferred: function( func ) { /* tuples包含三个数组 三个数组前三项分别代表jQuery回调对象中的 fire, add, jQuery.Callback... 阅读全文
posted @ 2013-10-30 15:19 杨君华 阅读(1925) 评论(6) 推荐(2) 编辑
摘要: 一、参数标记/* * once: 确保回调列表仅只fire一次 * unique: 在执行add操作中,确保回调列表中不存在重复的回调 * stopOnFalse: 当执行回调返回值为false,则终止回调队列的执行 * momery: 记录上一次fire时的参数,并在add中传递给fire和执行fire,执行时firingIndex为上一次fire时的firingLength */二、源码解读分析var optionsCache = {}, // Used for splitting on whitespace core_rnotwhite = /\S+/g;// Convert... 阅读全文
posted @ 2013-10-21 19:36 杨君华 阅读(1238) 评论(0) 推荐(2) 编辑
摘要: 一、先附上democontenteditable ... 阅读全文
posted @ 2013-10-19 16:17 杨君华 阅读(2694) 评论(1) 推荐(0) 编辑
摘要: 一、ready函数的实现经常用jQuery类库或其他类库中的ready方法,有时候想想它们到底是怎么实现的,但是看了一下jQuery中的源码,涉及到的模块比较多,(水平有限)代码比较难看懂;自己结合了一些书籍内容,总结一下。先说一下ready函数的实现思路:变量ready通过表达式赋值,右侧为一个自执行匿名函数,在这个匿名函数中,首先为各个浏览器的事件绑定处理函数,并为isReady赋值(根据事件异步处理程序来确定),然后返回一个传参闭包,在闭包中,主要判断isReady值来执行操作,如果dom结构准备就绪(isReady === true),执行回调,否则将回调加入到要执行的队列(funs) 阅读全文
posted @ 2013-09-18 17:04 杨君华 阅读(2320) 评论(3) 推荐(0) 编辑
摘要: 一、前言:最近要实现一个元素拖放效果,鼠标拖动元素并且定位元素,首先想到的是HTML5中的拖放,在HTML5中,有一个draggable属性,且有dragstart, dragover, drop等事件,主要是通过event.dataTransfer对象方法,在dragstart事件中设置数据event.dataTransfer.setData(); 在drop事件中获取数据event.dataTransfer.getData();但是它并不能实现元素的实时拖放效果,因此还是需要用鼠标事件来模拟元素的拖放。二、实例示图三、实现原理: 1、思路:鼠标依次触发mousedown, mousemov 阅读全文
posted @ 2013-09-13 18:08 杨君华 阅读(4462) 评论(2) 推荐(0) 编辑
摘要: 前言:瀑布流的效果,页面都是由很多数据块(这里将数据块分成多列)组成,每个数据块的高度不等, 浏览器下拉后数据都是从高度最小列最先展示在用户面前;实例:http://miiee.taobao.com/choice.htm?pcid=8106&cid=81060011、首先获取每列的高度,保存在一个数组中,然后求数组中最小项的值// 获取数值数组中最小项的索引// 数组只有一个元素,直接返回0// 如果最小值有两个或以上,则返回第一个最小值的索引function minIndexOf ( array ) { var arr = array || [], len = arr.lengt.. 阅读全文
posted @ 2013-07-26 13:15 杨君华 阅读(1936) 评论(2) 推荐(5) 编辑
摘要: 例图:一、思路1、单击元素时,使元素可以编辑,并获得焦点2、按下键盘检测用户编辑元素中的文本3、监听按下Enter键操作或离开可编辑元素焦点时,更新数据库二、代码 1 $(function(){ 2 // return obj { length: 字节长度, limitStr: 限定的字符串(字节长度小于等于intVal) } 3 function getStringByteInfo ( string, intVal ) { 4 var str = $.trim(string) || '', length = str.length, len, reg, char... 阅读全文
posted @ 2013-07-18 14:52 杨君华 阅读(1623) 评论(0) 推荐(0) 编辑
摘要: 一、需求示例图二、需求分析1、分页依据元素: 当前页码, 后端的页码总数2、页数小于等于6, 直接在当前页码显示左右相邻页码3、页数大于等于7, 根据 余数(= 总页码数 - 当前页码数)来做判断三、注释源码注:代码依赖jQuery库function paging ( currentPage, totalPage ) { var p = currentPage, t = totalPage, linkStr = ''; // 页码链接(后面 + 页码参数),也可以作为参数传递 // 插入一个页码包装器 $('').appendTo('body') 阅读全文
posted @ 2013-06-03 23:04 杨君华 阅读(2794) 评论(10) 推荐(4) 编辑