您的位置:首页 > Web前端 > JQuery

关于如何监听div大小的变化,jquery扩展函数

2019-05-09 15:03 453 查看
[code](function($, h, c) {

var a = $([]),

e = $.resize = $.extend($.resize, {}),

i,

k = "setTimeout",

j = "resize",

d = j + "-special-event",

b = "delay",

f = "throttleWindow";

e[b] = 250;

e[f] = true;

$.event.special[j] = {

setup: function() {

if (!e[f] && this[k]) {

return false;

}

var l = $(this);

a = a.add(l);

$.data(this, d, {

w: l.width(),

h: l.height()

});

if (a.length === 1) {

g();

}

},

teardown: function() {

if (!e[f] && this[k]) {

return false;

}

var l = $(this);

a = a.not(l);

l.removeData(d);

if (!a.length) {

clearTimeout(i);

}

},

add: function(l) {

if (!e[f] && this[k]) {

return false;

}

var n;

function m(s, o, p) {

var q = $(this),

r = $.data(this, d);

r.w = o !== c ? o: q.width();

r.h = p !== c ? p: q.height();

n.apply(this, arguments);

}

if ($.isFunction(l)) {

n = l;

return m;

} else {

n = l.handler;

l.handler = m;

}

}

};

function g() {

i = h[k](function() {

a.each(function() {

var n = $(this),

m = n.width(),

l = n.height(),

o = $.data(this, d);

if (m !== o.w || l !== o.h) {

n.trigger(j, [o.w = m, o.h = l]);

}

});

g();

},

e[b]);

}

})(jQuery, this);

这样就可以和$(windows).resize(function(){})一样 4000 实现监听div大小的变化。

如:

$('tag').resize()

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: