ども、小堤です。
はぁ・・・今日も結局寝ることは許されないのねぇ。
で、Ext.extender.jsについてです。
これは、僕がExtオブジェクトを拡張するために使っているファイルなんですが、紹介します。まだ3個しかないし。まぁまだ全部ネタ帳から移植してないんで。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<span style="color: #990000">/*! * Ext.extender * Copyright (c) 2006-2009 Xenophy.CO.,LTD All rights Reserved. * info@xenophy.com * http://www.xenophy.com/ */</span> <span style="color: #990000">// {{{ Ext Extender</span> Ext.apply(Ext,{ <span style="color: #990000">// {{{ maxZindex</span> <span style="color: #990000">/** * DOMツリー内のzindex最大値を取得します。 * * @return zindex最大値 */</span> maxZindex : <span style="color: #000099">function</span>() { <span style="color: #000099">var</span> ret = <span style="color: #009900">0</span>; <span style="color: #000099">var</span> els = Ext.select(<span style="color: #009900">'*'</span>); els.<span style="color: #000099">each</span>(<span style="color: #000099">function</span>(el){ <span style="color: #000099">var</span> zIndex = el.getStyle(<span style="color: #009900">'z-index'</span>); <span style="color: #000099">if</span>(Ext.isNumber(parseInt(zIndex)) && ret < zIndex) { ret = zIndex; } }, <span style="color: #000099">this</span>); <span style="color: #000099">return</span> ret; }, <span style="color: #990000">// }}}</span> <span style="color: #990000">// {{{ getScrollPos</span> getScrollPos: <span style="color: #000099">function</span>() { <span style="color: #000099">var</span> y = (document.documentElement.scrollTop > <span style="color: #009900">0</span>) ? document.documentElement.scrollTop : document.body.scrollTop; <span style="color: #000099">var</span> x = (document.documentElement.scrollLeft > <span style="color: #009900">0</span>) ? document.documentElement.scrollLeft : document.body.scrollLeft; <span style="color: #000099">return</span> { x: x, y: y }; } <span style="color: #990000">// }}}</span> }); <span style="color: #990000">// }}}</span> <span style="color: #990000">// {{{ String</span> <span style="color: #000099">String</span>.<span style="color: #000099">prototype</span>.endsWith = <span style="color: #000099">function</span>(suffix) { <span style="color: #000099">var</span> sub = <span style="color: #000099">this</span>.length - suffix.length; <span style="color: #000099">return</span> (sub >= <span style="color: #009900">0</span>) && (<span style="color: #000099">this</span>.lastIndexOf(suffix) === sub); }; <span style="color: #990000">// }}}</span> |
maxZindex
1 |
Ext.WindowMgr.zseed = Ext.maxZindex(); |
のようにしてつかいます。
WindowMsg.zseedはデフォルトで9000なんですね、自分でDIVタグのzindexを10000とかにしちゃうと、普通にExt.Windowを生成すると裏に隠れちゃうんで、そういうときに便利かもですね。
固定で30000とか設定するのかっこわるいでしょ?
getScrollPos
画面がスクロールしたとき(したに、右にながいコンテンツの場合)起点(左上)からどれだけスクロールしているかを取得できます。
xFrameworkPX Debug Toolsのアイコンみたく、スクロールしてもついてくるてきなもののときにやくにたちますね。
ちなみに、つぎのようにつかいます。
1 2 3 4 5 |
<span style="color: #990000">// ウィンドウスクロールイベントリスナー追加</span> Ext.fly(window).<span style="color: #000099">on</span>(<span style="color: #009900">'scroll'</span>, <span style="color: #000099">function</span>(e){ <span style="color: #000099">var</span> pos = Ext.getScrollPos(); }, <span style="color: #000099">this</span>); |
上記のようにするとスクロールイベントにリスナー追加できます、そのときに位置情報を取得できます。
あと、おまけで。
endsWith
Stringに追加しているので、文字列から直接使えます。
これ、最後がこの文字になってる?っていうチェックにつかいます。
1 2 3 |
if ("test.html".endsWith('.html')) { // 拡張子が.htmlの時の処理 } |
まだ、あるんですがネタ帳から移植すんでないので・・そのうちまた更新します。
ちなみに、これもゼノフィサイトにUX共々のっけるともりでーす。
ああ・・最近ブログにまじめ。ファミチキなう!ゞ(・_・)ノしたい。
Ext.extender.js