关于EXTJS的onResize事件监听问题, 我设置了一个panel,里面对它进行onResize事件监听怎么写,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于EXTJS的onResize事件监听问题, 我设置了一个panel,里面对它进行onResize事件监听怎么写,相关的知识,希望对你有一定的参考价值。

最好有具体代码,
还设有就是这个监听事件的函数中的每个参数的意思是什么,高手赐教
不胜感激

resize : ( Ext.Component this, Number adjWidth, Number adjHeight, Number rawWidth, Number rawHeight )里面参数是坐标点,由两个坐标点组成的新的大小和位置。(x1,y1,x2,y2)。

on( String eventName, Function handler, [Object scope], [Object options] ) : void
这是panel的事件监听函数,第一个参数是事件名称,resize是一个事件,所以写'resize',第二个是处理函数,在这里传入参数。第三个是函数的作用域,一般无特殊情况写this即可。

具体就是this.on('resize',handlerFn:function(this,adjx,adjy,rawx,rawy)
//这里写你的操作即可,参数是对应resize事件里的。
,this);

更多详细,请参考extjs API
参考技术A 你在百度搜 四湖论坛 希望对你有帮助

关于 Chrome 浏览器中 onresize 事件的 Bug

我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 bug 吧,估计他们的工程师认为浏览器打开时也算窗口发生了变化。解决问题之前我搜索了相关内容,确实有关于 Chrome 的 onresize 的问题,但跟我遇到的问题还有很大不同。我把这个问题抽象为以下函数:

    function init() {

        alert(\'a\');

        window.onresize = function() {

            init();
            
        }

    }

    init();

大家可以自行测试,在 Chrome 中会弹出两次 alert,而其它浏览器只会弹出一次 alert,因为 Chrome 浏览器打开时就执行了 onresize 事件。所以现在要解决的问题就是如何让 init() 函数在 Chrome 浏览器打开时只执行一次。

这个问题看似容易却很棘手。因为只有打开浏览器时才会有这个 bug,某种程度上属于无关紧要的问题。原本打算放掉这个问题,但是我是追求完美的人,遇到问题总会想尽办法解决。容我感慨一句,很多问题就像脑筋急转弯,转个弯就能解决。好了,废话不多说,直接贴代码,按照我之前的做法,我还是先将代码折叠起来,请大家以自己的方式解决一下,或许比我的方法更好,欢迎留言。

    function init() {

        var width = window.innerWidth;

        alert(\'a\');

        window.onresize = function() {

            var width2 = window.innerWidth;

            if (width != width2) {

                init();
                
            }
        }

    }

    init();
View Code

我想我在解决这个问题时耍了一点小聪明,至少想要从根本上也就是在 Chrome 浏览器打开时就禁止 onresize 事件是不可能的。所以我加了一个窗口宽度作为对比,这样就可以保证 init() 函数只执行一次。在这里还有一个小问题,我最初用的是高度对比,但是不知道为什么两个高度值存在偏差,大家可以将宽度改为高度测试一下,希望知道这个小问题的朋友告诉我。

最后贴一下我的插件地址 https://github.com/nzbin/CardShow,我在之前的文章中也介绍了该插件中其它的一些问题,感兴趣的朋友可以点此查看

以上是关于关于EXTJS的onResize事件监听问题, 我设置了一个panel,里面对它进行onResize事件监听怎么写,的主要内容,如果未能解决你的问题,请参考以下文章

vue 中监听窗口发生变化,触发监听事件, window.onresize && window.addEventListener('resize',fn) ,windo

EXTJS 4.1,网格行体 tpl 上的事件监听器

关于window.onresize

Extjs 窗口关闭事件

extjs 面板的可拖动事件

vue 里 onresize 事件被覆盖,以及怎么实现 resize 防抖移除 resize 事件?