jquery resize事件增强版

时间:2023-03-08 16:14:16
/*
* jQuery resize event - v1.1 - 3/14/2010
* http://benalman.com/projects/jquery-resize-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(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);

jquery自带的resize事件只能监听文档窗口改变大小,这个插件可以对任意标签进行监听。

$("#content2").resize(function(){
changeIfranme();
});

$(window.parent.document).find("#content-iframe").load(function(){
    var main = $(window.parent.document).find("#content-iframe");
    var thisheight = $(document).height()+30;
    main.height(thisheight < 500 ? 500 : thisheight);
});


/*控制父窗口框架*/
function changeIfranme(){
    var main = $(window.parent.document).find("#content-iframe");
    var thisheight = $('.content').height()+100;
    main.height(thisheight < 500 ? 500 : thisheight);
}

根据子窗口的大小动态改变iframe大小。

<iframe src="/myjjf/home.aspx" id="content-iframe" name="content-iframe" width="980" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>