OSDN Git Service

Version 0.6.37, bugfix.
[pettanr/clientJs.git] / 0.6.x / js / dom / 12_XDomEvent.js
index 2b90001..0c3a820 100644 (file)
@@ -8,7 +8,7 @@
 if( window.addEventListener ){\r
        X.Dom.Event = function( e, xnode ){\r
                //this._event        = e;\r
-               this.type          = e.type;\r
+               this.type          = X.Dom.Event.RenameTo[ e.type ] || e.type;\r
                \r
                //http://www.quirksmode.org/js/events_properties.html\r
                this.target        = Node._getXNode( e.target.nodeType === 3 ? e.target.parentNode : e.target );// defeat Safari bug // xnode\r
@@ -35,6 +35,10 @@ if( window.addEventListener ){
                this.which         = e.which || ( e.button + 1 ); // 左:1, 中:2, 右:3\r
                \r
                // https://developer.mozilla.org/ja/docs/DOM/DOM_event_reference/mousewheel\r
+               \r
+               // TODO\r
+               // https://w3g.jp/blog/tools/wheelevent_crossbrowser\r
+               // ホイール系イベント2014年版クロスブラウザ\r
                if( e.wheelDeltaY !== undefined ){\r
                        this.wheelDeltaX = e.wheelDeltaX / 12;\r
                        this.wheelDeltaY = e.wheelDeltaY / 12;\r
@@ -143,6 +147,7 @@ X.Dom.Event.VIEW_ACTIVATE       = ++X.Event._LAST_EVENT;
 X.Dom.Event.VIEW_DEACTIVATE     = ++X.Event._LAST_EVENT;\r
 X.Dom.Event.VIEW_RESIZED        = ++X.Event._LAST_EVENT;\r
 X.Dom.Event.BASE_FONT_RESIZED   = ++X.Event._LAST_EVENT;\r
+// same_page_jump\r
 // on_screen_keyboard_show\r
 // on_screen_keyboard_hide\r
 X.Dom.Event.BEFORE_UPDATE       = ++X.Event._LAST_EVENT;\r
@@ -163,6 +168,23 @@ X.Dom.Event.ANIME_BEFORE_STOP   = ++X.Event._LAST_EVENT; // xnode.stop() のみ
 X.Dom.Event.ANIME_STOP          = ++X.Event._LAST_EVENT;\r
 X.Dom.Event._LAST_EVENT         = X.Event._LAST_EVENT; // ここに書いてあるイベントの最後の値 X.Dom.Event.ANIME_STOP と同じ値\r
 \r
+X.Dom.Event.Rename = {};\r
+X.Dom.Event.RenameTo = {};\r
+// https://github.com/georgeadamson/jQuery.prefixfree-events/blob/master/jQuery.prefixfree-events.js\r
+\r
+if( window.onwebkitanimationend !== undefined && window.onanimationend === undefined ){\r
+       X.Dom.Event.Rename[ 'animationend' ]               = 'webkitAnimationEnd';\r
+       X.Dom.Event.RenameTo[ 'webkitAnimationEnd' ]       = 'animationend';\r
+       X.Dom.Event.Rename[ 'animationstart' ]             = 'webkitAnimationStart';\r
+       X.Dom.Event.RenameTo[ 'webkitAnimationStart' ]     = 'animationstart';\r
+       X.Dom.Event.Rename[ 'animationiteration' ]         = 'webkitAnimationIteration';\r
+       X.Dom.Event.RenameTo[ 'webkitAnimationIteration' ] = 'animationiteration';\r
+};\r
+\r
+if( window.onwebkittransitionend !== undefined && window.ontransitionend === undefined ){\r
+       X.Dom.Event.Rename[ 'transitionend' ]         = 'webkitTransitionEnd';\r
+       X.Dom.Event.RenameTo[ 'webkitTransitionEnd' ] = 'transitionend';\r
+};\r
 \r
 X.Dom.Node.prototype.listen = function( type, arg1, arg2, arg3 /* [ listener || ( context + function ) || function ][ arguments ] */ ){\r
        var elm;\r
@@ -177,11 +199,11 @@ X.Dom.Node.prototype.listen = function( type, arg1, arg2, arg3 /* [ listener ||
 };\r
 \r
 X.Dom.Node.prototype._addEvent =\r
-       document.removeEventListener ?\r
+       X.Dom.EVENT_W3C ?\r
                (function( type ){\r
-                       this._rawNode && this._rawNode.addEventListener( type, this, false );\r
+                       this._rawNode && this._rawNode.addEventListener( X.Dom.Event.Rename[ type ] || type, this, false );\r
                }) :\r
-       document.detachEvent ?\r
+       X.Dom.EVENT_IE ?\r
                (function( type ){\r
                        if( !this._rawNode ) return;\r
                        this._handleEvent = this._handleEvent || X.Callback.create( this );\r
@@ -206,13 +228,13 @@ X.Dom.Node.prototype.unlisten = function( type /* , arg1, arg2, arg3 */ ){
 };\r
 \r
 X.Dom.Node.prototype._removeEvent =\r
-       document.removeEventListener ?\r
+       X.Dom.EVENT_W3C ?\r
                (function( type ){\r
                        var elm = this._rawNode;\r
                        if( !elm ) return;\r
-                       elm.removeEventListener( type, this, false );\r
+                       elm.removeEventListener( X.Dom.Event.Rename[ type ] || type, this, false );\r
                }) :\r
-       document.detachEvent ?\r
+       X.Dom.EVENT_IE ?\r
                (function( type ){\r
                        var elm = this._rawNode;\r
                        if( !elm ) return;\r
@@ -235,7 +257,7 @@ X.Dom.Node.prototype._removeEvent =
 \r
 \r
 X.Dom.Node.prototype.handleEvent =\r
-       document.removeEventListener ?\r
+       X.Dom.EVENT_W3C ?\r
                (function( e ){\r
                        var ret = X.EventDispatcher.prototype.dispatch.call( this, new X.Dom.Event( e, this ) );\r
 \r
@@ -288,7 +310,7 @@ X.Dom.Node.prototype._restoreEvent = function(){
  *  Dean Edwards/Matthias Miller/John Resig\r
  */\r
 /* for ie9+/Mozilla/Opera9 */\r
-if( document.addEventListener ){\r
+if( X.Dom.DOM_W3C ){\r
        X.Dom.Node._document.listenOnce( 'DOMContentLoaded', X.Dom._init );\r
 } else\r
 if( 5 <= X.UA.IE && X.inHead ){\r