• 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(){
        // 处理操作
    });
  • 相关阅读:
    Python 性能剖分工具
    串口编程
    拼音输入法实现
    Android 第三方分享中遇到的问题以及解决方案
    linux C 获取与修改IP地址
    git拉取远程分支并创建本地分支
    再次探讨企业级开发中的Try......Catch性能问题
    [手游新项目历程]-38-Supervisord守护进程
    公务员考试
    概念的内涵和外延
  • 原文地址:https://www.cnblogs.com/petrolero/p/14174563.html
Copyright © 2020-2023  润新知