test.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title></title>
<style>
.invisible {
visibility: hidden;
}
#box1 {
height: 1000px;
background: #F00;
}
#box2 {
height: 100px;
background: #0F0;
}
</style>
</head>
<body>
<div id="box1">box1</div>
<textarea class="jq-datalazyload invisible">
<script>
alert('222');
</script>
<div id="box2">box2</div>
</textarea>
<script src="jquery-1.6.4.min.js"></script>
<script src="datalazyload.js"></script>
<script>
var lazy = new $.Datalazyload()
lazy.init()
</script>
</body>
</html>

datalazyload.js

/**
* Created with JetBrains PhpStorm.
* User: Administrator
* Date: 13-6-18
* Time: 下午2:13
* To change this template use File | Settings | File Templates.
*/
(function($) {
var AREA_DATA_CLS = "jq-datalazyload"; function Datalazyload(config) {
var defaultConfig = {
};
this.setting = $.extend(defaultConfig, config || {});
} $.extend(
Datalazyload.prototype, {
init: function() {
var self = this;
self._getAreaList();
for (var i = 0; i < self.areaList.length; i++) {
self._loadAreaItem(self.areaList[i]);
}
$(window).bind("scroll resize", function() {
self._getAreaList();
for(var i = 0; i < self.areaList.length; i++){
self._loadAreaItem(self.areaList[i]);
}
});
},
_getAreaList: function() {
var self = this;
var areaList = [];
areaList = $("textarea").filter("." + AREA_DATA_CLS);
self.areaList = areaList;
if (areaList.length == 0) {
$(window).unbind("scroll resize");
}
},
_replaceArea: function(area) {
var self = this;
var _area = $(area);
var _html = _area.val();
_area.removeClass(AREA_DATA_CLS);
$(_html).insertBefore(_area);
_area.hide();
},
_loadAreaItem: function(area) {
var self = this;
var top;
var viewHeight = $(window).height();
var scrollTop = $(window).scrollTop();
if ($(area).offset().top != 0) {
top = $(area).offset().top;
} else {
top = $(area).parent().offset().top;
}
if (top <= viewHeight + scrollTop) {
self._replaceArea(area)
}
}
}
);
$.Datalazyload = Datalazyload;
})(jQuery);

☀【jQuery插件】DOM 延迟渲染的更多相关文章

  1. 海量jQuery插件

    转自:http://blog.csdn.net/zzq58157383/article/details/6900142 提醒大家在使用的时候注意jQuery包的版本问题,最好是使用相同的版本,因为使用 ...

  2. 超经典~超全的jQuery插件大全

    海量的jQuery插件帖,很经典,不知道什么时候开始流传,很早以前就收藏过,为了工作方便还是发了一份放在日志里面. 其中有些已经无法访问,或许是文件移除,或许是被封锁.大家分享的东西,没什么特别的可说 ...

  3. DOM笔记(七):开发JQuery插件

    在上一篇笔记本中,讲解了如何利用jQuery扩展全局函数和对象:DOM笔记(六):怎么进行JQuery扩展? 在这篇笔记本中,将开发一个简单的动画插件,名称是example-plugin,用其实现一个 ...

  4. jQuery插件jqplot的详细配置说明和渲染器

    jQuery插件jqplot的详细配置说明和渲染器 (2012-08-23 08:57:42) 转载▼ 标签: jqplot 详细配置 渲染器 it 分类: 技术类 jQuery.jqplot插件的官 ...

  5. 50个jQuery插件可将你的网站带到另一个高度

    Web领域一直在发生变化并且其边界在过去的每一天都在发生变化(甚至不能以小时为计),随着其边界的扩展取得了许多新发展.在这些进步之中,开发者的不断工作创造了更大和更好的脚本,这些脚本以插件方式带来更好 ...

  6. 40 个让你的网站更加友好的 jQuery 插件

    一个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个jQuery插件是一个基本的可以扩充jQuery 原型对 ...

  7. 40个让你的网站屌到爆的jQuery插件

    一 个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个 jQuery插件是一个基本的可以扩充jQuery 原 ...

  8. 20 个用于处理页面滚动效果的 jQuery 插件

    对设计和开发一个网站来说,web开发者不能低估了网站滚动效果的重要性.如今,设计者们都视为一大挑战了,在网站中设计出吸引眼球的高效视觉滚动效果.幸运的是有各种各样的jquery 滚动插件可供他们使用, ...

  9. 设计一种前端数据延迟加载的jQuery插件(2)

    背景 最近看到很多网站都运用到了一种前端数据延迟加载技术,包括淘宝,新浪网等等,这样做的目的可以使得一些未显示的图片随 着滚动条的滚动进行延迟显示. 好处显而易见,可以减少前端对于图片的Http请求, ...

随机推荐

  1. 飞锐GIS开发基础系列

    3s知识库和GIS科研站,未经允许,禁止任何形式的复制.转载和传播.联系方式:276888624@qq.com 品GIS,品开发,品人生...... http://www.3sbase.com/3sb ...

  2. 九度OJ 1081 递推数列 -- 矩阵二分乘法

    题目地址:http://ac.jobdu.com/problem.php?pid=1081 题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q.这里n >= ...

  3. greenlet代码解读

    协程 上次已经讲解了协程的的实现方法,和我对协程的一些理解.这里指我就先以代码说明协程的运行.def test1():    print 12         (2)    gr2.switch()  ...

  4. 一段sql的优化

    优化前代码 select * ,ROW_NUMBER() OVER(order by WrongCount desc) as rowId from(select Quba_IDint,Quba_Num ...

  5. 【实习记】2014-09-24万事达卡bin查询项目总结

            8月28号,接到这个问题:现有前缀查询速度较慢,改进此知值求区间问题. 一开始没想到用二分法,更没有想到这个项目用了一个月,这一个月里,我学习并使用了middle框架写出了server ...

  6. 关于Hibernate框架的面试题

    1.Hibernate的工作原理及为什么要用? 原理: 1读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持 ...

  7. web前端工程师必须掌握的localStorage(二)

    最近工作太忙了,回来后就很晚了,因为红牛喝太多都不想睡觉了(公司免费给的,好多箱o(╯□╰)o),睡不着就想着逛逛博客园,本人最近忙着做一个仿原生app的singlePage应用,话说最近后台那帮兄弟 ...

  8. javascript 写策略模式,商场收银打折优惠策略

    [Decode error - output not utf-8] ----------------------------- 购物清单 方便面 : 100 x 50 = 5000 | 4000 菊花 ...

  9. angularjs制作的iframe后台管理页切换页面

    <code> <!DOCTYPE html><html lang="zh" ng-app><head> <meta chars ...

  10. jquery阻止事件的两种实现方式

    再阻止事件冒泡的方面,jquery有两种方式: 一种是 return false;另外一种是 e.stopPropagation() html代码 <form id="form1&qu ...