☀【jQuery插件】DOM 延迟渲染
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 延迟渲染的更多相关文章
- 海量jQuery插件
转自:http://blog.csdn.net/zzq58157383/article/details/6900142 提醒大家在使用的时候注意jQuery包的版本问题,最好是使用相同的版本,因为使用 ...
- 超经典~超全的jQuery插件大全
海量的jQuery插件帖,很经典,不知道什么时候开始流传,很早以前就收藏过,为了工作方便还是发了一份放在日志里面. 其中有些已经无法访问,或许是文件移除,或许是被封锁.大家分享的东西,没什么特别的可说 ...
- DOM笔记(七):开发JQuery插件
在上一篇笔记本中,讲解了如何利用jQuery扩展全局函数和对象:DOM笔记(六):怎么进行JQuery扩展? 在这篇笔记本中,将开发一个简单的动画插件,名称是example-plugin,用其实现一个 ...
- jQuery插件jqplot的详细配置说明和渲染器
jQuery插件jqplot的详细配置说明和渲染器 (2012-08-23 08:57:42) 转载▼ 标签: jqplot 详细配置 渲染器 it 分类: 技术类 jQuery.jqplot插件的官 ...
- 50个jQuery插件可将你的网站带到另一个高度
Web领域一直在发生变化并且其边界在过去的每一天都在发生变化(甚至不能以小时为计),随着其边界的扩展取得了许多新发展.在这些进步之中,开发者的不断工作创造了更大和更好的脚本,这些脚本以插件方式带来更好 ...
- 40 个让你的网站更加友好的 jQuery 插件
一个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个jQuery插件是一个基本的可以扩充jQuery 原型对 ...
- 40个让你的网站屌到爆的jQuery插件
一 个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个 jQuery插件是一个基本的可以扩充jQuery 原 ...
- 20 个用于处理页面滚动效果的 jQuery 插件
对设计和开发一个网站来说,web开发者不能低估了网站滚动效果的重要性.如今,设计者们都视为一大挑战了,在网站中设计出吸引眼球的高效视觉滚动效果.幸运的是有各种各样的jquery 滚动插件可供他们使用, ...
- 设计一种前端数据延迟加载的jQuery插件(2)
背景 最近看到很多网站都运用到了一种前端数据延迟加载技术,包括淘宝,新浪网等等,这样做的目的可以使得一些未显示的图片随 着滚动条的滚动进行延迟显示. 好处显而易见,可以减少前端对于图片的Http请求, ...
随机推荐
- .NET Entity Framework入门简介及简单操作
Entity Framework是微软借鉴ORM思想开发自己的一个ORM框架. ORM就是将数据库表与实体对象(相当于三层中的Model类)相互映射的一种思想. 最大的优点就是非常方便的跨数据库平台. ...
- ios PromiseKit
简介: 高级开发是高度异步的,PromiseKit收集了一些帮助函数,让我们开发过程中使用的典型异步模式更加令人愉悦. 1.通过pod安装promisekit: 2. promise.h介绍 @imp ...
- C#&JQ仿网上商城商品条件筛选功能
1.后台绑定: 一种案例: 根据第一级显示第二级,并带有每个二级的“全部”功能: #region 绑定区域 #region 绑定一级区域 ) <= ? : (PageIndex - )) + , ...
- Ext.Net学习笔记06:Ext.Net DirectEvents用方补充
在ASP.NET控件上面使用DirectEvents 我们在ASP.NET中实现无刷新的页面请求的时候,通常会用到UpdatePanel,现在Ext.Net为我们提供了另外一种渠道:通过DirectE ...
- [linux] 系统管理常用命令
1.查看某个软件是否安装: rpm -qa|grep software_name 2.top命令,显示系统的动态视图,q退出 3.ps aux|grep process_name 显示正在运行的进程 ...
- 11_关于SqlMapperConfig.xml
[简述] SqlMapConfig.xml是Mybatis的全局配置文件,配置内容如下: 1.properties---------属性 2.settings-----------全局配置参数 3.t ...
- P1396 营救
P1396 营救 218 通过 571 提交 题目提供者yeszy 标签 二分 图论 并查集 福建省历届夏令营 难度 普及- 题目描述 "咚咚咚--""查水表!" ...
- 九度OJ 1435 迷瘴
题目地址:http://ac.jobdu.com/problem.php?pid=1435 题目描述: 通过悬崖的yifenfei,又面临着幽谷的考验—— 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满 ...
- js点击 密码输入框密码显示隐藏
很多密码框都有个眼睛标记,点击能显示密码.原理就是点击切换password为text等显示 下面上代码 <!DOCTYPE html> <html> <head> ...
- 用javascript操作xml(二)JavaScript 将XML转换成字符串(xml to string)
function xmlToString(xmlData) { var xmlString; //IE if (window.ActiveXObject){ xmlString = xmlData.x ...