JQ对页面中某个DIV的大小变化进行监听

 1 //监听div大小变化
 2 (function($, h, c) {
 3     var a = $([]),
 4     e = $.resize = $.extend($.resize, {}),
 5     i,
 6     k = "setTimeout",
 7     j = "resize",
 8     d = j + "-special-event",
 9     b = "delay",
10     f = "throttleWindow";
11     e[b] = 250;
12     e[f] = true;
13     $.event.special[j] = {
14         setup: function() {
15             if (!e[f] && this[k]) {
16                 return false;
17             }
18             var l = $(this);
19             a = a.add(l);
20             $.data(this, d, {
21                 w: l.width(),
22                 h: l.height()
23             });
24             if (a.length === 1) {
25                 g();
26             }
27         },
28         teardown: function() {
29             if (!e[f] && this[k]) {
30                 return false;
31             }
32             var l = $(this);
33             a = a.not(l);
34             l.removeData(d);
35             if (!a.length) {
36                 clearTimeout(i);
37             }
38         },
39         add: function(l) {
40             if (!e[f] && this[k]) {
41                 return false;
42             }
43             var n;
44             function m(s, o, p) {
45                 var q = $(this),
46                 r = $.data(this, d);
47                 r.w = o !== c ? o: q.width();
48                 r.h = p !== c ? p: q.height();
49                 n.apply(this, arguments);
50             }
51             if ($.isFunction(l)) {
52                 n = l;
53                 return m;
54             } else {
55                 n = l.handler;
56                 l.handler = m;
57             }
58         }
59     };
60     function g() {
61         i = h[k](function() {
62             a.each(function() {
63                 var n = $(this),
64                 m = n.width(),
65                 l = n.height(),
66                 o = $.data(this, d);
67                 if (m !== o.w || l !== o.h) {
68                     n.trigger(j, [o.w = m, o.h = l]);
69                 }
70             });
71             g();
72         },
73         e[b]);
74     }
75 })(jQuery, this);

使用:

$("div元素").resize(function(){
    // 处理操作
});

 

posted @ 2020-12-22 18:37  petrolero  阅读(2987)  评论(2编辑  收藏  举报