[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 /* 2 YUI 3.17.2 (build 9c3c78e) 3 Copyright 2014 Yahoo! Inc. All rights reserved. 4 Licensed under the BSD License. 5 http://yuilibrary.com/license/ 6 */ 7 8 YUI.add('shim-plugin', function (Y, NAME) { 9 10 /** 11 * Provides shimming support for Node via a Plugin. 12 * This fixes SELECT bleedthrough for IE6 & Mac scrollbars 13 * @module shim-plugin 14 */ 15 16 /** 17 * Node plugin which can be used to add shim support. 18 * 19 * @class Plugin.Shim 20 * @param {Object} User configuration object 21 */ 22 function Shim(config) { 23 this.init(config); 24 } 25 26 /** 27 * Default class used to mark the shim element 28 * 29 * @property CLASS_NAME 30 * @type String 31 * @static 32 * @default "yui-node-shim" 33 */ 34 // TODO: use ClassNameManager 35 Shim.CLASS_NAME = 'yui-node-shim'; 36 37 /** 38 * Default markup template used to generate the shim element. 39 * 40 * @property TEMPLATE 41 * @type String 42 * @static 43 */ 44 Shim.TEMPLATE = '<iframe class="' + Shim.CLASS_NAME + 45 '" frameborder="0" title="Node Stacking Shim"' + 46 'src="javascript:false" tabindex="-1" role="presentation"' + 47 'style="position:absolute; z-index:-1;"></iframe>'; 48 49 Shim.prototype = { 50 init: function(config) { 51 this._host = config.host; 52 this.initEvents(); 53 this.insert(); 54 this.sync(); 55 }, 56 57 initEvents: function() { 58 this._resizeHandle = this._host.on('resize', this.sync, this); 59 }, 60 61 getShim: function() { 62 return this._shim || ( 63 this._shim = Y.Node.create( 64 Shim.TEMPLATE, 65 this._host.get('ownerDocument') 66 ) 67 ); 68 }, 69 70 insert: function() { 71 var node = this._host; 72 this._shim = node.insertBefore( this.getShim(), 73 node.get('firstChild')); 74 }, 75 76 /** 77 * Updates the size of the shim to fill its container 78 * @method sync 79 */ 80 sync: function() { 81 var shim = this._shim, 82 node = this._host; 83 84 if (shim) { 85 shim.setAttrs({ 86 width: node.getStyle('width'), 87 height: node.getStyle('height') 88 }); 89 } 90 }, 91 92 /** 93 * Removes the shim and destroys the plugin 94 * @method destroy 95 */ 96 destroy: function() { 97 var shim = this._shim; 98 if (shim) { 99 shim.remove(true); 100 } 101 102 this._resizeHandle.detach(); 103 } 104 }; 105 106 Shim.NAME = 'Shim'; 107 Shim.NS = 'shim'; 108 109 Y.namespace('Plugin'); 110 Y.Plugin.Shim = Shim; 111 112 113 }, '3.17.2', {"requires": ["node-style", "node-pluginhost"]});
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |