\r
-if( !window['console'] || ( window.parent && window.parent.log ) ) console = { log : function(a){\r
- var win, elm;\r
- //alert(a);\r
- if( window.parent ){\r
- elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
- elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
- };\r
-} };\r
+if( !window['console'] || ( window.parent && window.parent.log ) )\r
+ console = { log : function(a){\r
+ var win, elm;\r
+ //alert(a);\r
+ if( window.parent ){\r
+ elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
+ elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
+ };\r
+ } };\r
\r
var undefined,\r
- X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' ),\r
X_TEMP = { onSystemReady : [] },\r
X_shortcutFunction,\r
X_shortcutContext;\r
\r
-X.VERSION = '0.6.89';\r
+function X( v ){\r
+ if( X.Type.isFunction( v ) ){\r
+ X.ViewPort.listenOnce( X.Event.XDOM_READY, v );\r
+ } else\r
+ if( X_shortcutFunction ){\r
+ return X_shortcutFunction.apply( X_shortcutContext || X, arguments );\r
+ };\r
+};\r
+\r
+X.VERSION = '0.6.103';\r
\r
X.bootTime = + new Date;\r
\r
X.emptyFunction = new Function;\r
\r
- // defer の場合もあるので、document.readyState を見る MacIE で false\r
+// TODO defer の場合もあるので、document.readyState を見る\r
+// MacIE で false\r
X.inHead = (function( s ){\r
if( !s ) return false;\r
if( !s.length ) return false; // Safari1.3 312.8 でerror\r
};\r
\r
//http://www.useragentstring.com/pages/Iris/\r
- acme.Iris = dua.toLowerCase().indexOf( 'iris' ) !== -1;\r
+ if( dua.toLowerCase().indexOf( 'iris' ) !== -1 ) acme.Iris = true;\r
\r
- acme.EInk =\r
- // Kobo Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Verson/4.0 Mobile Safari/533.1 (Kobo Touch)\r
+ if( // Kobo Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Verson/4.0 Mobile Safari/533.1 (Kobo Touch)\r
dua.indexOf( 'Kobo' ) !== -1 ||\r
// Kindle paperwhite Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+\r
dua.indexOf( 'Kindle' ) !== -1 ||\r
// Sony Reader Mozilla/5.0 (Linux; U; ja-jp; EBRD1101; EXT) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1\r
- dua.indexOf( 'EBRD' ) !== -1; \r
+ dua.indexOf( 'EBRD' ) !== -1\r
+ ) acme.EInk = true; \r
\r
return acme;\r
})( navigator ),\r
X_UA_DOM = {},\r
X_UA_EVENT = {},\r
X_UA_HID = {};\r
-X_UA.IECompat && alert( X_UA.IE + ' ' + X_UA._IE + ' Tri:' + X_UA.Trident );\r
+//X_UA.IECompat && alert( X_UA.IE + ' ' + X_UA._IE + ' Tri:' + X_UA.Trident );\r
\r
/*\r
* http://d.hatena.ne.jp/t-uchima/20051003/p1\r
* MacIEにはattachEventが一応あるけどwindow.attachEventとdocument.attachEventしかなく他の要素にはattachEventはない。\r
*/\r
-\r
if( X_UA.IE4 && X_UA.IE < 5 ){ // ie4 & iemobi4 & macie4.x\r
X_UA_DOM.IE4 = true;\r
X_UA_EVENT.IE4 = true;\r
if( X_UA.IE < 7 ){ // error @ NN7.2\r
// bonus: hotfix for IE6 SP1 (bug KB823727)\r
// multipleIEs IE6 standalone 版では不可, IE5.5 は可,,,\r
- X_UA.IE4 || X.UA.MacIE ?\r
+ X_UA.IE4 || X_UA.MacIE ?\r
document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) :\r
(function(){\r
X_UA.IE_EXECOM_ERROR = eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' );\r
\r
isArray :\r
new Function( 'v',\r
- X.UA.IE < 5.5 ?\r
+ X_UA.IE < 5.5 ?\r
'return v&&v.push===Array.prototype.push' : // win ie5-, MacIE5.2\r
- X.UA.IE ?\r
+ X_UA.IE ?\r
'return v&&Object.prototype.toString.call(v)==="[object Array]"' :\r
'return v instanceof Array'\r
),\r
\r
isHTMLElement :\r
new Function( 'v',\r
- ( X.UA.IE4 || X.UA.MacIE ) ?\r
+ ( X_UA.IE4 || X_UA.MacIE ) ?\r
'return v&&v.tagName&&v.insertAdjacentHTML&&true' : // ie4 or MacIE5.23, v.all <- error\r
window[ 'HTMLElement' ] ?\r
'return v instanceof HTMLElement' :\r
function( v ){\r
if( v && v.constructor === window.Image ) return true;\r
if( v && window.HTMLImageElement && v.constructor === window.HTMLImageElement ) return true; // ie6- は constructor が undef、HTMLImageElement が undef なので、HTMLElement の存在確認が必要\r
- if( X.UA.WebKit < 525.13 ){ // Safari3-\r
+ if( X_UA.WebKit < 525.13 ){ // Safari3-\r
if( v && v.src !== undefined && v.onload !== undefined && X.Type.isNumber( v.height ) && X.Type.isNumber( v.width ) && X.Type.isBoolean( v.complete ) ){\r
return true;\r
};\r
\r
-var X_Object_inObject = X.UA.IE < 5.5 ? // TODO JScript で判定\r
+var X_Object_inObject = X_UA.IE < 5.5 ? // TODO JScript で判定\r
(function( name, obj ){\r
var p;\r
if( obj[ name ] ) return true;\r
/**\r
* delay(ミリ秒)後にイベントを dispatch する。戻り値は uid = X.Timer.add() のタイマーID(数値)。X.Timer.remove(uid) でタイマーを解除して dispatch を中止できる。\r
* @this {X.EventDispatcher}\r
- * @return {number}\r
- * @param {number=} delay ms 省略した場合は 0 として扱う asyncDispatch( 'myevent' ) -> asyncDispatch( 0, 'myevent' )\r
- * @param {(eventHash|string|number)=} e\r
+ * @param {(number|eventHash|string)=} delay ms 省略した場合は 0 として扱う asyncDispatch( 'myevent' ) -> asyncDispatch( 0, 'myevent' )\r
+ * @param {(eventHash|string|number)=} e イベントを表す数値、文字列、{ type : XXX, ... } なオブジェクト\r
+ * @return {number} X.Timer.add() の戻り値\r
*/ \r
asyncDispatch : function( delay, e ){\r
if( delay && e === undefined ){\r
e = delay;\r
delay = 0;\r
- console.log( 'lazy : ' + e );\r
};\r
return X.Timer.add( delay, 1, this, this.dispatch, [ e ] );\r
}\r
// Days on the Moon DOM Events とブラウザの実装 \r
// http://nanto.asablo.jp/blog/2007/03/23/1339502\r
// Safari 2 では関数オブジェクトしか EventListener として使えませんが、Safari のナイトリービルドでは handleEvent メソッドを持つオブジェクトも EventListener として使えるようです。\r
- X_UA_EVENT.W3C /* && ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 ) */ ? // Safari3-\r
+ X_UA_EVENT.W3C /* && ( X_UA.WebKit < 525.13 || X_UA.Opera7 || X_UA.NetFront < 4 ) */ ? // Safari3-\r
(function( that, type, raw, list ){\r
- if( that._isXHR && X.UA.Opera < 12 ){\r
+ if( that._isXHR && X_UA.Opera < 12 ){\r
// Opera11- の XHR は event オブジェクトが返らないため, eventType 毎に callback を指定する addEventListener もない\r
raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
} else\r
};\r
\r
var X_EventDispatcher_actualRemoveEvent =\r
- X_UA_EVENT.W3C /*&& ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 )*/ ? // Safari3-\r
+ X_UA_EVENT.W3C /*&& ( X_UA.WebKit < 525.13 || X_UA.Opera7 || X_UA.NetFront < 4 )*/ ? // Safari3-\r
(function( that, type, raw, list, skip ){\r
- if( that._isXHR && X.UA.Opera < 12 ){\r
+ if( that._isXHR && X_UA.Opera < 12 ){\r
X_Callback_correct( raw[ 'on' + type ] );\r
raw[ 'on' + type ] = '';\r
} else \r
if( ret & X.Callback.PREVENT_DEFAULT ){\r
this._tag === 'A' && this._rawObject.blur();\r
e.preventDefault();\r
- if( X.UA.WebKit < 525.13 ){ // Safari3-\r
+ if( X_UA.WebKit < 525.13 ){ // Safari3-\r
if( e.type === 'click' || e.type === 'dbclick' ){\r
X_EventDispatcher_safariPreventDefault = true;\r
};\r
};\r
});\r
\r
-if( X.UA.WebKit < 525.13 ){ // Safari3-\r
+if( X_UA.WebKit < 525.13 ){ // Safari3-\r
document.documentElement.onclick =\r
document.documentElement.ondbclick = function( e ){\r
if( X_EventDispatcher_safariPreventDefault ){\r
// --- implements ---------------------------------------------------------- //\r
// ------------------------------------------------------------------------- //\r
\r
-if( X.UA.IE4 || X.UA.MacIE ){\r
+if( X_UA.IE4 || X_UA.MacIE ){\r
X.Timer[ '_' ] = X_Timer_onTimeout;\r
X_Timer_onTimeout = 'X.Timer._()';\r
};\r
\r
// http://havelog.ayumusato.com/develop/javascript/e528-ios6_scrolling_timer_notcall.html\r
// iOS6 スクロール中のタイマー発火絡みのバグ備忘\r
-if( X.UA.iOS ){\r
+if( X_UA.iOS ){\r
window.addEventListener( 'scroll', function(){\r
var last, now;\r
if( X_Timer_timerId ){\r
\r
}\r
}\r
-);\r
+),\r
+\r
+X_System_javascriptScore;\r
\r
// beforeunload\r
// unload\r
\r
X_TEMP.onRearchEndOfScript = function(){\r
var callbacks = X_TEMP.onSystemReady,\r
- i = callbacks.length;\r
+ i = callbacks.length,\r
+ now = X_Timer_now(),\r
+ speed = now - X.bootTime;\r
+ \r
+ X_System_javascriptScore = speed;\r
+ console.log( 'js score ' + speed );\r
+ \r
delete X_TEMP.onRearchEndOfScript;\r
delete X_TEMP.onSystemReady;\r
\r
X_ViewPort_vScrollbarSize,
X_ViewPort_hScrollbarSize,
- X_Dom_detectFontSize = !( X.UA.IE < 9 || X.UA.iOS ) && function(){
+ X_Dom_detectFontSize = !( X_UA.IE < 9 || X_UA.iOS ) && function(){
var size = X_Node_fontSizeNode._rawObject.offsetHeight;
if( X_ViewPort_baseFontSize !== size ){
X_ViewPort_baseFontSize && X_ViewPort.asyncDispatch( { type : X.Event.BASE_FONT_RESIZED, fontSize : size, w : X_ViewPort_width, h : X_ViewPort_height } );
X_ViewPort_orientationFlag,
X_Dom_orientationchange = window[ 'orientation' ] !== undefined && function( e ){
X_ViewPort_orientationFlag = true;
- !X.UA.Android && X_ViewPort_resize();
+ !X_UA.Android && X_ViewPort_resize();
//console.log( '-- orientationchange : ' + X.ViewPort.getSize[ 0 ] + ' ' + X.ViewPort.getSize[ 1 ] );
},
// Safari2.0.4では標準・互換どちらも document.body
X_Node_body._updateTimerID && X_Node_startUpdate();
- /*X.UA.Opera ?
+ /*X_UA.Opera ?
( document.documentElement && document.documentElement.clientWidth ?
new Function( 'return[document.documentElement.clientWidth,document.documentElement.clientHeight]' ) :
new Function( 'return[document.body.clientWidth,document.body.clientHeight]' )
*/
var X_ViewPort_resize =
// iOS もループで回す,,,iOS3.1.3, iOS6 で確認
- X.UA.IE < 9 || X.UA.iOS ?
+ X_UA.IE < 9 || X_UA.iOS ?
(function(){
var size;
if( !X_ViewPort_lock ){
X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_XTREE, function(){
X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_INIT;
- //X.UA.Opera7 && alert( 'bc' );
+ //X_UA.Opera7 && alert( 'bc' );
X_Node_body.appendAt( 0,
X_Node_systemNode = Node.create( 'div', { 'class' : 'hidden-system-node' } ),
X_Node_fontSizeNode = Node.create( 'div', { 'class' : 'hidden-system-node' } ).cssText( 'line-height:1;height:1em;' ).text( 'X' )
if( document[ 'webkitHidden' ] !== undefined ) {
X_ViewPort_document.listen( 'webkitvisibilitychange', X_ViewPort );
} else
- if( X.UA.iOS && window[ 'onpageshow' ] !== undefined ) {
+ if( X_UA.iOS && window[ 'onpageshow' ] !== undefined ) {
X_ViewPort.listen( 'pageshow', X_ViewPort )
.listen( 'pagehide', X_ViewPort );
} else {
};
function X_ViewPort_getWindowSize(){
- return X.UA.IE ?
+ return X_UA.IE ?
[ X_ViewPort_rootElement.clientWidth, X_ViewPort_rootElement.clientHeight ] :
[ window.innerWidth, window.innerHeight ];
};
if( X_UA_EVENT.W3C ){
X_ViewPort_document.listenOnce( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
} else
-if( 6 <= X.UA.IE && X.inHead ){
+if( 6 <= X_UA.IE && X.inHead ){
// if this script in Head
document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );
X_TEMP._script = document.getElementById( "__ie_onload" );
};
// Re: onLoad doesn't work with Safari?
// http://lists.apple.com/archives/web-dev/2003/Oct/msg00036.html
-if( X.UA.WebKit || X.UA.Safari < 3 ){ // sniff
+if( X_UA.WebKit || X_UA.Safari < 3 ){ // sniff
X.Timer.add( 16, function(){
if( !X_TEMP.onDomContentLoaded ) return X_Callback_UN_LISTEN;
if( document.readyState === 'loaded' || document.readyState === 'complete' ) return X_TEMP.onDomContentLoaded();
listening : function( type, arg1, arg2, arg3 ){
return X_ViewPort_document.listening( type, arg1, arg2, arg3 );
}
+
+ // html
+ // head
+ // body
+ // find
};
CLASSNAME : 8, // _getCharSize, width, height, x, y\r
ATTR : 16, // _getCharSize, width, height, x, y\r
CSS : 32, // _getCharSize, width, height, x, y\r
- IE_FILTER : X.UA.IE < 9 && !X.UA.MacIE ? 64 : 0,\r
+ IE_FILTER : X_UA.IE < 9 && !X_UA.MacIE ? 64 : 0,\r
UNKNOWN_TAG_FIX : 128,\r
IE4_TEXTNODE_FIX : 256\r
},\r
\r
X_Node_State = {\r
DESTROYED : 0,\r
- EXIST : 1,\r
- BELONG_TREE : 2,\r
- DISPLAY_NONE : 4,\r
- DISPLAY_BLOCK : 8,\r
- DISPLAY_INLINE : 16,\r
+ EXIST : 1, // XNODE_EXIDT, ELEMENT_EXIST\r
+ BELONG_TREE : 2, // HAS_PARENT, BELONG_TREE_XNODE, BELONG_TREE_ELEMENT\r
+ DISPLAY_NONE : 4, // VISIVILITY_HIDDEN & DISPALY_NONE\r
+ DISPLAY_BLOCK : 8, // remove\r
+ DISPLAY_INLINE : 16,// remove\r
POSITION_ABSOLUTE : 32,\r
OVERFLOW_HIDDEN : 64,\r
HAS_WIDTH_LENGTH : 128,\r
HAS_HEIGHT_LENGTH : 512,\r
HAS_HEIGHT_PERCENT : 1024,\r
IE4_ONLY_TEXT : 2048,\r
- IE5_DISPLAY_NONE_FIX : !X.UA.MacIE && X.UA.IE5 ? 4096 : 0 // filterがかかっていると不可? MacIE5.2- は ?\r
+ IE5_DISPLAY_NONE_FIX : !X_UA.MacIE && X_UA.IE5 ? 4096 : 0 // filterがかかっていると不可? MacIE5.2- は ?\r
},\r
\r
X_Node_TYPE = {\r
IMAGE : 10\r
},\r
\r
- X_Node_strictElmCreation = !X.UA.MacIE && X.UA.IE5678,// && !X.UA.MacIE;\r
+ X_Node_strictElmCreation = !X_UA.MacIE && X_UA.IE5678,// && !X_UA.MacIE;\r
\r
- X_Node_useDocumentFragment = document.createDocumentFragment && ( !X.UA.IE || 5.5 <= X.UA.IE ) && document.createDocumentFragment(),\r
+ X_Node_useDocumentFragment = document.createDocumentFragment && ( !X_UA.IE || 5.5 <= X_UA.IE ) && document.createDocumentFragment(),\r
\r
X_Node_newByTag = false,\r
\r
_rawObject : null,\r
_rect : null, // \r
\r
- _root : null, // xnode が文書ツリーに属しているか?はこれを見る\r
+ _root : null, // xnode が文書ツリーに属しているか?はこれを見る -> state\r
parent : null, // remove された枝も親子構造は維持している。\r
_xnodes : null,\r
\r
var css, xnodes, xnode, parent, uid = X_Node_CHASHE.length;\r
\r
if( X_Node_newByTag ){\r
- X_Node_newByTag = false;\r
+ X_Node_newByTag = false;\r
this._tag = v.toUpperCase();\r
this._xnodeType = 1;\r
- this._state = X_Node_State.DISPLAY_INLINE; // todo\r
+ this._state = X_Node_State.DISPLAY_INLINE; // TODO\r
arguments[ 1 ] && this.attr( arguments[ 1 ] );\r
css = arguments[ 2 ];\r
css && this[ X.Type.isString( css ) ? 'cssText' : 'css' ]( css );\r
if( xnode = X_Node_getXNode( v ) ) return xnode;\r
// v.parentNode || v.parentElement : dom1 || dom0\r
this.parent = ( parent = v.parentNode || v.parentElement ) && parent.tagName /* ie7- */ && X_Node_getXNode( parent );\r
- this._root = this.parent ? this.parent._root : null;\r
+ if( this.parent && this.parent._root ) this._root = this.parent._root;\r
this._rawObject = v;\r
this._xnodeType = 1;\r
- this._state = X_Node_State.DISPLAY_BLOCK; // todo\r
+ this._state = X_Node_State.DISPLAY_BLOCK; // TODO\r
this._tag = v.tagName.toUpperCase();\r
this._id = v.id;\r
this._className = v.className;\r
case X_Node_TYPE.RAW_TEXT :\r
if( xnode = X_Node_getXNode( v ) ) return xnode;\r
this.parent = X_Node_getXNode( v.parentNode );\r
- this._root = this.parent ? this.parent._root : null;\r
+ if( this.parent && this.parent._root ) this._root = this.parent._root;\r
this._rawObject = v;\r
this._xnodeType = 3;\r
this._state = X_Node_State.DISPLAY_INLINE;\r
};\r
// className\r
if( that._dirty & X_Node_Dirty.CLASSNAME ){\r
- that._className ? ( elm.className = that._className ) : ( elm.className && elm.removeAttribute( X.UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-? \r
+ that._className ? ( elm.className = that._className ) : ( elm.className && elm.removeAttribute( X_UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-? \r
\r
// ie5 only\r
if( X_Node_State.IE5_DISPLAY_NONE_FIX && elm.currentStyle.display === 'none' ){\r
// TODO display:none の場合、更新をスキップ\r
if( that._dirty & X_Node_Dirty.CSS ){\r
if( that._cssText !== null || ( that._cssText = X_Node_CSS_objToCssText( that._css ) ) ){\r
- X.UA.Opera78 || X.UA.NN6 ?\r
+ X_UA.Opera78 || X_UA.NN6 ?\r
elm.setAttribute( 'style', that._cssText ) : // opera8用\r
( elm.style.cssText = that._cssText );\r
} else {\r
if( that._dirty & X_Node_Dirty.ATTR && ( attrs = that._newAttrs || that._attrs ) ){\r
rename = X_Node_Attr_renameForDOM;\r
for( k in attrs ){\r
- if( !X.UA.MacIE && ( X.UA.IE5 || X.UA.IE55 ) ){ // IETester 5.5 ではエラーが出なかった.MultipulIE5.5 ではエラーが出たので\r
+ if( !X_UA.MacIE && ( X_UA.IE5 || X_UA.IE55 ) ){ // IETester 5.5 ではエラーが出なかった.MultipulIE5.5 ではエラーが出たので\r
if( that._tag === 'TEXTAREA' && k === 'value' ){\r
elm.firstChild ?\r
( elm.firstChild.data = attrs[ k ] ) :\r
if( !elm ) return;\r
that._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( that, false );// イベントの退避\r
// elm.parentNode.tagName for ie7\r
- if( !X.UA.MacIE ){\r
+ if( !X_UA.MacIE ){\r
!isChild && elm.parentNode && elm.parentNode.tagName && elm.parentNode.removeChild( elm );\r
} else {\r
!isChild && elm.parentNode && elm.parentNode.tagName && X_TEMP._fixed_remove( elm, that );\r
'4' : 'mouse'\r
}; */\r
\r
-if( !X.UA.IE || 9 <= X.UA.IE ){\r
+if( !X_UA.IE || 9 <= X_UA.IE ){\r
X.Dom.Event = function( e, xnode ){\r
var originalType = e.type,\r
type, pointerType,\r
\r
// http://www.programming-magic.com/20090127231544/\r
// Opera で button==2の場合、コンテキストメニューイベントを発火 「ツール」->「設定」->「詳細設定」->「コンテンツ」->「Javascriptオプション」で「右クリックを制御するスクリプトを許可する」\r
- if( originalType === 'mousedown' && this.button === 2 && X.UA.Opera ){\r
+ if( originalType === 'mousedown' && this.button === 2 && X_UA.Opera ){\r
events = [ X.Object.clone( this ), X.Object.clone( this ) ];\r
events[ 1 ].type = 'contextmenu';\r
return events;\r
//event.pageY = DOMAssistant.def(e.pageY)? e.pageY : (event.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0)); \r
//};\r
\r
- if( 5 <= X.UA.IE ){\r
+ if( 5 <= X_UA.IE ){\r
this.offsetX = e.offsetX; // イベントターゲット左上からの座標\r
this.offsetY = e.offsetY; \r
}// else\r
\r
\r
// TODO load -> readystatechange this.readyState === "loaded" || this.readyState === "complete"\r
+/*\r
X.Dom.Event._LOAD_FIX_TAGS = {\r
IFRAME : true,\r
SCRIPT : true//,\r
//LINK : true\r
-};\r
+}; */\r
\r
// https://github.com/georgeadamson/jQuery.prefixfree-events/blob/master/jQuery.prefixfree-events.js\r
// https://developer.mozilla.org/en-US/docs/Web/Events/wheel\r
//\r
if( document.onwheel === undefined ){\r
// DOMMoseScroll\r
- if( X.UA.Gecko && window.MouseScrollEvent ){\r
- if( 2 <= X.UA.Gecko || ( 1.9 <= X.UA.Gecko && 1 <= X.UA.GeckoPatch ) ){ // Gecko 1.9.1+ (firefox3.5+)\r
+ if( X_UA.Gecko && window.MouseScrollEvent ){\r
+ if( 2 <= X_UA.Gecko || ( 1.9 <= X_UA.Gecko && 1 <= X_UA.GeckoPatch ) ){ // Gecko 1.9.1+ (firefox3.5+)\r
console.log( 'wheel <= MozMousePixelScroll' );\r
X_Event_Rename[ 'wheel' ] = 'MozMousePixelScroll';\r
} else\r
- if( 1 <= X.UA.Gecko || ( 0.9 <= X.UA.Gecko && 7 <= X.UA.GeckoPatch ) ){ // Gecko 0.9.7+ (NN6.2+?)\r
+ if( 1 <= X_UA.Gecko || ( 0.9 <= X_UA.Gecko && 7 <= X_UA.GeckoPatch ) ){ // Gecko 0.9.7+ (NN6.2+?)\r
console.log( 'wheel <= DOMMouseScroll' );\r
X_Event_Rename[ 'wheel' ] = 'DOMMouseScroll';\r
};\r
X_Event_Rename[ 'transitionend' ] = 'webkitTransitionEnd';\r
} else\r
if( window.onotransitionend !== undefined && window.ontransitionend === undefined ){\r
- if( X.UA.Opera < 12 ){\r
- console.log( 'transitionend <= oTransitionEnd|ver.' + X.UA.Opera );\r
+ if( X_UA.Opera < 12 ){\r
+ console.log( 'transitionend <= oTransitionEnd|ver.' + X_UA.Opera );\r
X_Event_Rename[ 'transitionend' ] = 'oTransitionEnd';\r
} else {\r
- console.log( 'transitionend <= otransitionEnd|ver.' + X.UA.Opera );\r
+ console.log( 'transitionend <= otransitionEnd|ver.' + X_UA.Opera );\r
X_Event_Rename[ 'transitionend' ] = 'otransitionEnd';\r
};\r
} else\r
// http://msdn.microsoft.com/ja-jp/library/ie/dn304886%28v=vs.85%29.aspx\r
} else\r
if( X_UA_HID.TOUCH ){\r
+ // touch のみ(iOS でも脱獄したら?)、 touch と mouse(Android), mouse のみ\r
X_Event_Rename[ 'pointerdown' ] = [ 'touchdown', 'mousedown' ];\r
X_Event_Rename[ 'pointerup' ] = [ 'touchup', 'mouseup' ];\r
X_Event_Rename[ 'pointermove' ] = [ 'touchmove', 'mousemove' ];\r
X_Event_Rename[ 'pointercancel' ] = 'touchcancel';\r
- // X_Event_Rename[ 'click' ] = [ 'click', 'tap' ]; // ループになってしまう!直した!\r
+ // X_Event_Rename[ 'click' ] = [ 'touchdown', 'touchmove', 'touchup' ]; // ループになってしまう!直した!直ってない!\r
} else {\r
X_Event_Rename[ 'pointerdown' ] = 'mousedown';\r
X_Event_Rename[ 'pointerup' ] = 'mouseup';\r
X_Event_Rename[ 'pointercancel' ] = 'mouseleave';//??\r
\r
// Opera は ブラウザ設定から右クリックの通知を許可すると mousedown で e.button==2 が返る,キャンセルは可能??\r
- X.UA.Opera && (\r
+ X_UA.Opera && (\r
X_Event_Rename[ 'contextmenu' ] = 'mousedown' );\r
+ \r
+ /*\r
+ * buttons の無いブラウザには mouseup, mousedown を監視して、buttons フラグを更新し続ける\r
+ */\r
};\r
};\r
case 'style' :\r
case 'cssText' :\r
return this.cssText();\r
+ case 'text' :\r
+ return this.text();\r
+ case 'html' :\r
+ return this.html();\r
+ case 'selected' :\r
+ // kquery.js : safariのバグ対策\r
+ // if ($.browser.safari && key === "selected" && tmp) tmp.selectedIndex;\r
+ // 親ノードの selectedIndex の getter を呼んでおくと値が正しくなる、ということ?( by itozyun )\r
+ if( X_UA.WebKit ) this._rawObject.parentNode.selectedIndex;\r
case 'value' :\r
case 'checked' :\r
- case 'selected' :\r
case 'disabled' : \r
case 'selectedIndex' :\r
if( X_Node_Attr_HAS_VALUE[ this._tag ] ){\r
case 'style' :\r
case 'cssText' :\r
return that.cssText( v );\r
+ case 'text' :\r
+ return that.text( v );\r
+ case 'html' :\r
+ return that.html( v );\r
};\r
// debug\r
if( name.indexOf( 'on' ) === 0 ){\r
},
X_Node_CSS_IE_FILTER_FIX =
- X.UA.IE && X.UA.IE < 9 && !X.UA.MacIE ?
+ X_UA.IE && X_UA.IE < 9 && !X_UA.MacIE ?
{
opacity : 1,
textShadow : 1
} :
- 9 <= X.UA.IE && X.UA.IE < 10 ? // == 9
+ 9 <= X_UA.IE && X_UA.IE < 10 ? // == 9
{} :
{},
return ret;
})(),
-X_Node_CSS__CLIP_SEPARATOR = X.UA.IE && X.UA.IE < 8 ? ' ' : ',',
+X_Node_CSS__CLIP_SEPARATOR = X_UA.IE && X_UA.IE < 8 ? ' ' : ',',
/*
*
var X_Node_CSS_SPECIAL_FIX =
// ~IE8
- X.UA.IE && X.UA.IE < 9 && !X.UA.MacIE?
+ X_UA.IE && X_UA.IE < 9 && !X_UA.MacIE?
(function( obj ){
var test = X_Node_CSS_SPECIAL_FIX_PROP,
filters = [],
return filters.join( ' ' );
}) :
// IE9 textShadow に filter を使用
- X.UA.IE && 9 <= X.UA.IE && X.UA.IE < 10 ?
+ X_UA.IE && 9 <= X_UA.IE && X_UA.IE < 10 ?
(function( obj ){
var test = X_Node_CSS_SPECIAL_FIX_PROP,
filters = [], p, id, v;
return this._fontSize = parseFloat( document.defaultView.getComputedStyle( this._rawObject, null ).fontSize );
}) :
- 5.5 <= X.UA.IE ?
+ 5.5 <= X_UA.IE ?
(function(){
var font, vu, v, u, _v;
X_Node_body._updateTimerID && X_Node_startUpdate();
var X_Node_CSS_Support, X_Node_CSS_SPECIAL_FIX_PROP;
( function(){
- var testStyle = X.UA.IE4 ? {} : ( document.documentElement || document.createElement( 'div' ) ).style,
+ var testStyle = X_UA.IE4 ? {} : ( document.documentElement || document.createElement( 'div' ) ).style,
temp = testStyle.cssText,
prefix = X_Node_CSS_VENDER_PREFIX,
vendors = 'webkit,Webkit,Moz,moz,Ms,ms,O,o,khtml,Khtml'.split( ',' ),
X_Node_CSS_SPECIAL_FIX_PROP =
// ~IE8
- X.UA.IE < 9 && !X.UA.MacIE ?
+ X_UA.IE < 9 && !X_UA.MacIE ?
{
filter : 1,
opacity : 2//, uinode ChromeNode で行う
//backgroundImage : 5
} :
// IE9
- 9 <= X.UA.IE && X.UA.IE < 10 ?
+ 9 <= X_UA.IE && X_UA.IE < 10 ?
{
filter : 1//,
//textShadow : 1
};\r
\r
// セレクター\r
- X.Doc.find = X._shortcut = Node.prototype.find = X_NodeList.prototype.find = function( queryString ){\r
+ X.Doc.find = X_shortcutFunction = Node.prototype.find = X_NodeList.prototype.find = function ( queryString ){\r
var HTML = X_Node_html,\r
scope = this.constructor === X_NodeList && this.length ? this : [ this.constructor === Node ? this : X_Node_body ],\r
parents = scope, // 探索元の親要素 XNodeList の場合あり\r
// 諦めて、funcAttrを呼ぶ\r
// flag_call = ($.browser.safari && key === 'selected');\r
// getAttributeを使わない\r
- useName = X.UA.IE && key !== 'href' && key !== 'src';\r
+ useName = X_UA.IE && key !== 'href' && key !== 'src';\r
toLower = !!val && !isXML && noLower.indexOf( key ) === -1; //!noLower.test(key);\r
if( toLower ) val = val.toLowerCase();\r
if( op === 3 ) val = _ + val + _;\r
( X_Dom_DTD_CLEANUP_TAGS[ tag ] || cname.indexOf( ' cleanup-target ' ) !== -1 );\r
};\r
\r
-if( X.UA.MacIE ){\r
+if( X_UA.MacIE ){\r
\r
X_TEMP._fixed_remove = function( node, xnode ){\r
var parent = node.parentNode, l;\r
};\r
\r
} else\r
-if( X.UA.Opera7 ){\r
+if( X_UA.Opera7 ){\r
\r
X_TEMP._fixed_remove = function( node ){\r
if( node.nodeType === 1 || node.nodeType === 3 ){\r
\r
// TODO\r
// textarea の内容を控えて、消す。xnode tree 構築後に復帰。でないと、html パースでこける\r
- //X.UA.MacIE && alert( body.innerHTML );\r
+ //X_UA.MacIE && alert( body.innerHTML );\r
// cleanup tree \r
(function/*cleanUpTree*/( elm, skip, head ){\r
var nodes = X_Object_cloneArray( elm.childNodes ),\r
// ブロック要素直下のスペースだけは削除??\r
default :\r
//console.log( 'Remove type: ' + node.nodeType + ' value: ' + node.nodeValue );\r
- if( !X.UA.Opera7 /*&& !X.UA.MacIE */ ){\r
+ if( !X_UA.Opera7 /*&& !X_UA.MacIE */ ){\r
elm.removeChild( node );\r
} else {\r
X_TEMP._fixed_remove( node );\r
//++count;\r
};\r
};\r
- })( X.UA.MacIE ? ( copy = body.cloneNode( true ) ) : body );\r
+ })( X_UA.MacIE ? ( copy = body.cloneNode( true ) ) : body );\r
\r
- if( X.UA.MacIE ){\r
+ if( X_UA.MacIE ){\r
document.write( html = copy.innerHTML );\r
} else {\r
// body の属性値の取得\r
- if( X.UA.IE5678 ){\r
+ if( X_UA.IE5678 ){\r
html = body.innerHTML.split( X_String_CRLF ).join( '' ); // 不要な改行が入る\r
} else {\r
html = body.innerHTML;\r
elm = elems[ current.j ];\r
tag = elm.tagName && elm.tagName.toUpperCase();\r
if( ( elm.nodeType !== 1 && elm.nodeType !== 3 ) || tag === '!' || ( tag && tag.charAt( 0 ) === '/' ) ){\r
- if( !X.UA.Opera7 && !X.UA.MacIE ){\r
+ if( !X_UA.Opera7 && !X_UA.MacIE ){\r
elm.parentNode.removeChild( elm );\r
} else {\r
X_TEMP._fixed_remove( elm );\r
if( elm.nodeType === 3 ){\r
if( !( text = elm.data ) || ( text = X_String_cleanupWhiteSpace( text ) ) === ' ' ){\r
//alert( text.charCodeAt( 0 ) );\r
- if( !X.UA.Opera7 && !X.UA.MacIE ){\r
+ if( !X_UA.Opera7 && !X_UA.MacIE ){\r
elm.parentNode.removeChild( elm );\r
} else {\r
X_TEMP._fixed_remove( elm );\r
* flash player 12, ie8+, ff17, opera11
*/
var X_Pulgin_FLASH_VERSION =
- !X.UA.IE && navigator.plugins[ 'Shockwave Flash' ] ?
+ !X_UA.IE && navigator.plugins[ 'Shockwave Flash' ] ?
parseFloat( navigator.plugins[ 'Shockwave Flash' ].version ) :
- !X.UA.IE4 && !X.UA.IE5 && X.UA.ActiveX ? (function(){
+ !X_UA.IE4 && !X_UA.IE5 && X_UA.ActiveX ? (function(){
var obj = eval( 'var a;try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}a' ),
ver = obj && obj.GetVariable( '$version' ).split( ' ' ).join( '.' );
return parseFloat( ver ) || 0;
0,
X_Pulgin_FLASH_ENABLED =
- X.UA.ActiveX ? !!X_Pulgin_FLASH_VERSION :
+ X_UA.ActiveX ? !!X_Pulgin_FLASH_VERSION :
navigator.mimeTypes &&
navigator.mimeTypes[ 'application/x-shockwave-flash' ] &&
navigator.mimeTypes[ 'application/x-shockwave-flash' ].enabledPlugin,
* ie11 の 互換モード(8,7)では、Silverlight が動作しない?
*/
X_Pulgin_SILVER_LIGHT_VERSION =
- !X.UA.IE && navigator.plugins[ 'Silverlight Plug-In' ] ?
+ !X_UA.IE && navigator.plugins[ 'Silverlight Plug-In' ] ?
parseFloat( navigator.plugins[ 'Silverlight Plug-In' ].version ) :
- X.UA.ActiveX && 6 <= X.UA.IE && !X.UA.IECompat ? (function(){
+ X_UA.ActiveX && 6 <= X_UA.IE && !X_UA.IECompat ? (function(){
return eval( 'var a,i=0;try{a=new ActiveXObject("AgControl.AgControl");for(i=5;i;--i)if(a.IsVersionSupported(i+".0"))break;}catch(e){i=0}i' );
})() :
0,
X_Pulgin_SILVER_LIGHT_ENABLED =
- X.UA.ActiveX ? !!X_Pulgin_SILVER_LIGHT_VERSION :
+ X_UA.ActiveX ? !!X_Pulgin_SILVER_LIGHT_VERSION :
navigator.mimeTypes &&
navigator.mimeTypes[ 'application/x-silverlight' ] &&
navigator.mimeTypes[ 'application/x-silverlight' ].enabledPlugin,
//http://docs.unity3d.ru/Manual/Detecting%20the%20Unity%20Web%20Player%20using%20browser%20scripting.html
X_Pulgin_UNITY_VERSION =
- !X.UA.IE && navigator.plugins[ 'Unity Player' ] ?
+ !X_UA.IE && navigator.plugins[ 'Unity Player' ] ?
parseFloat( navigator.plugins[ 'Unity Player' ].version ) :
- !X.UA.IE4 && !X.UA.IE5 && X.UA.ActiveX ? (function(){
+ !X_UA.IE4 && !X_UA.IE5 && X_UA.ActiveX ? (function(){
var obj = eval( 'var a;try{a=new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1")}catch(e){}a' );
return obj ? parseFloat( obj.GetPluginVersion() ) : 0;
})() :
0,
X_Pulgin_UNITY_ENABLED =
- X.UA.ActiveX ? !!X_Pulgin_UNITY_VERSION :
+ X_UA.ActiveX ? !!X_Pulgin_UNITY_VERSION :
navigator.mimeTypes &&
navigator.mimeTypes[ 'application/vnd.unity' ] &&
navigator.mimeTypes[ 'application/vnd.unity' ].enabledPlugin;
\r
// http://nanto.asablo.jp/blog/2011/12/08/6237308\r
// IE 6/7 で文書間通信を実現するための一案\r
- if( X.UA.IE < 9 ){\r
+ if( X_UA.IE < 9 ){\r
this.xnodeIframe.attr( 'src', 'about:blank' );\r
};\r
// Safari 2.0.* bug: iframe's absolute position and src set.\r
- if( !X.UA.Webkit ){\r
+ if( !X_UA.Webkit ){\r
this.xnodeIframe.css( { position : 'absolute' } );\r
};\r
\r
case X.Event.AFTER_UPDATE :\r
this._iwin = raw.contentWindow || raw.contentDocument && raw.contentDocument.parentWindow || window.frames[ this._name ];\r
\r
- this.xnodeIframe.listen( X.UA.IE < 9 ? [ 'readystatechange', 'error' ] : [ 'load', 'error' ], this );\r
+ this.xnodeIframe.listen( X_UA.IE < 9 ? [ 'readystatechange', 'error' ] : [ 'load', 'error' ], this );\r
\r
- if( !( X.UA.IE < 9 ) ){\r
+ if( !( X_UA.IE < 9 ) ){\r
this._html && X_Util_NinjaIframe_writeToIframe( this );\r
this._ready = true;\r
return;\r
return this;\r
};\r
\r
- if( X.UA.IE5 || X.UA.IE55 ){\r
+ if( X_UA.IE5 || X_UA.IE55 ){\r
this._iwin.location.href = 'about:blank'; // reload() では、IE5.5(IETester)で2回目移行の操作でerrorが出る(doc取得やopen,writeで)\r
} else {\r
this._iwin.location.reload();\r
if( !opt_html ) return this;\r
\r
this._html = opt_html;\r
- X.UA.IE < 9 || X_Util_NinjaIframe_writeToIframe( this );\r
+ X_UA.IE < 9 || X_Util_NinjaIframe_writeToIframe( this );\r
\r
return this;\r
},\r
// for Firefox, Safari, Google Chrome\r
if( img.naturalWidth ) return [ img.naturalWidth, img.naturalHeight ];\r
\r
- if( 5 <= X.UA.IE ){// for IE\r
+ if( 5 <= X_UA.IE ){// for IE\r
run = img.runtimeStyle;\r
memW = run.width;\r
memH = run.height;\r
return new X_NET_Queue( X_NET_TYPE_XHR, { method : 'GET', url : url } );\r
},\r
\r
- xhrPost : function( url, data ){\r
+ xhrPost : function( url, postbody ){\r
return new X_NET_Queue( X_NET_TYPE_XHR, { method : 'POST', url : url, postbody : postbody } );\r
},\r
\r
case X.Event.KILL_INSTANCE_CANCELED :\r
break;\r
case X.Event.PROGRESS :\r
- console.log( 'q: ' + e.type );\r
this.dispatch( e );\r
break;\r
case X.Event.SUCCESS :\r
case X.Event.ERROR :\r
case X.Event.TIMEOUT :\r
case X.Event.CANCELED :\r
- console.log( 'q: ' + e.type );\r
this.dispatch( e );\r
this.asyncDispatch( X.Event.COMPLETE );\r
break;\r
case X.Event.COMPLETE :\r
- console.log( 'complete. then kill()' );\r
this.kill();\r
X_NET_shiftQueue();\r
break;\r
new ActiveXObject( 'Msxml2.XMLHTTP.5.0' ); // バージョン5.0 は bugfix が行われないので、3.0 か 6.0 を指定すべき\r
\r
*/\r
-var X_Net_XHR_W3C = ( !X.UA.IE7 || !X_URL_IS_LOCAL ) && window[ 'XMLHttpRequest' ] && new XMLHttpRequest(),\r
+var X_Net_XHR_W3C = ( !X_UA.IE7 || !X_URL_IS_LOCAL ) && window[ 'XMLHttpRequest' ] && new XMLHttpRequest(),\r
X_Net_XHR_X_DOMAIN = window[ 'XDomainRequest' ] && new XDomainRequest(),\r
X_Net_XHR_VERSION = 0,\r
- X_Net_XHR_ACTIVE_X = !X.UA.IE4 && X.UA.IE < 8 && X.UA.ActiveX && ( new Function( [\r
+ X_Net_XHR_ACTIVE_X = !X_UA.IE4 && X_UA.IE < 8 && X_UA.ActiveX && ( new Function( [\r
'var x=".XMLHTTP",',\r
'm="MSXML2"+x,',\r
'n=[m+".6.0",m+".3.0",m+".5.0",m+".4.0",m,"Microsoft"+x],',\r
( 200 <= status && status < 300 ) ||\r
status === 304 ||\r
status === 1223 ||\r
- ( X.UA.Webkit && status === undefined ) // safari: /webkit/.test(userAgent)\r
+ ( X_UA.Webkit && status === undefined ) // safari: /webkit/.test(userAgent)\r
){\r
/*\r
* opera8, safari2, khtml3 で utf8 日本語文字列の文字化け\r
\r
\r
// ie8 では timeout が有効, MSXML のバージョンは関係なさそう、、、\r
- if( X.UA.IE8 ){\r
+ if( X_UA.IE8 ){\r
X_NET_XHRWrapper.listen( [ 'readystatechange', 'error', 'abort', 'timeout' ] );\r
} else\r
- if( X.UA.IE7 ){\r
+ if( X_UA.IE7 ){\r
if( X_URL_IS_LOCAL ){\r
X_NET_XHRWrapper.listen( 'readystatechange' ); // ie7 ActiveX の場合、error は不可\r
} else {\r
// TODO '<scr'+'ipt> 化 恐らくアンチウイルスソフトが反応しないための対策
- if( X.UA.IE8 ){
+ if( X_UA.IE8 ){
html = [
// http://blog.livedoor.jp/dankogai/archives/51503830.html
// Ajax - IE8にもJSON入ってます。使えるとは限らないけど
'</script>'
];
} else
- if( X.UA.IE9 ){
+ if( X_UA.IE9 ){
html = [
'<script id="jp"></script>',
'<script>',
'<script src="', url, '"></script>'
];
} else
- if( X.UA.IE4 || X.UA.MacIE ){
+ if( X_UA.IE4 || X_UA.MacIE ){
html = [
'<script id="jn"></script>',
'<script id="jp"></script>',
'</script>'
];
} else
- if( X.UA.IE < 8 ){ // ie5-7
+ if( X_UA.IE < 8 ){ // ie5-7
html = [
'<script id="jn"></script>',
'<script id="jp"></script>',
break;
};
};
-if( !X.UA.Opera ) X_NET_JSONP_operaImageHandleEvent = null;
\ No newline at end of file
+if( !X_UA.Opera ) X_NET_JSONP_operaImageHandleEvent = null;
\ No newline at end of file
var X_Net_Image_hasImage = !!window[ 'Image' ],\r
X_Net_Image_image = X_Net_Image_hasImage && new Image(),\r
// IE では厳密には HTMLImageElement ではなく、appendChild してもサイズが取れず、removeChild に失敗する\r
- X_Net_Image_isElement = !( X.UA.IE < 9 ) && X.Type.isHTMLElement( X_Net_Image_image );\r
+ X_Net_Image_isElement = !( X_UA.IE < 9 ) && X.Type.isHTMLElement( X_Net_Image_image );\r
\r
\r
if( !X_Net_Image_hasImage ){\r
\r
//X_Net_Image_hasImage ? ( this._rawObject.src = this.abspath ) : this.attr( 'src', this.abspath );\r
/*\r
- if( X.UA.Opera7 ){\r
+ if( X_UA.Opera7 ){\r
X_EventDispatcher_toggleAllEvents( this, false );\r
this._rawObject = new Image();\r
X_EventDispatcher_toggleAllEvents( this, true );\r
\r
this._rawObject.src = this.abspath;\r
//alert( this._rawObject.src + ' ' + this._rawObject.complete );\r
- if( X.UA.Opera7 && this._rawObject.complete ){\r
+ if( X_UA.Opera7 && this._rawObject.complete ){\r
this.asyncDispatch( 'load' );\r
} else {\r
this.timerID = X.Timer.add( this.delay, 0, this, this._detect );\r
this._busy = false;\r
this.finish = true;\r
this.timerID && X.Timer.remove( this.timerID );\r
- if( X.UA.Opera && !this._rawObject.complete ){\r
+ if( X_UA.Opera && !this._rawObject.complete ){\r
this.timerID = this.asyncDispatch( X.Event.ERROR );\r
return;\r
};\r
/*\r
* "Android version < 2.2" return ev.touches.length === 1 when touchend, others return ev.touches.length === 0\r
*/\r
- Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( X.UA.Android < 2.2 || X.UA.Blink || X.UA.Opera );\r
+ Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( X_UA.Android < 2.2 || X_UA.Blink || X_UA.Opera );\r
\r
// detect touchevents\r
Hammer.HAS_POINTEREVENTS = true; // navigator.pointerEnabled || navigator.msPointerEnabled;\r
// Scrollbar\r
hScrollbar : true,\r
vScrollbar : true,\r
- fixedScrollbar : X.UA.Android,\r
- hideScrollbar : X.UA.iOS,\r
- fadeScrollbar : X.UA.iOS, //&& has3d,\r
+ fixedScrollbar : X_UA.Android,\r
+ hideScrollbar : X_UA.iOS,\r
+ fadeScrollbar : X_UA.iOS, //&& has3d,\r
scrollbarClass : '',\r
\r
// Zoom\r
// Helpers FIX ANDROID BUG!\r
// translate3d and scale doesn't work together!\r
// Ignoring 3d ONLY WHEN YOU SET this.options.zoom\r
- //if ( this.options.zoom && X.UA.isAndroid ){\r
+ //if ( this.options.zoom && X_UA.isAndroid ){\r
// translateZ = '';\r
//}\r
\r
},\r
\r
_resize: function () {\r
- X.Timer.once( X.UA.Android ? 200 : 0, this, this.refresh );\r
+ X.Timer.once( X_UA.Android ? 200 : 0, this, this.refresh );\r
// setTimeout( this.refresh(), isAndroid ? 200 : 0);\r
},\r
\r