JavaScript 动态创建VML的方法 |
要使用VML,我们首先要开辟一个命名空间 。以前动态创建比较麻烦 复制代码 代码如下: function(){ if(!window.vml){ window.vml = {}; document.createStyleSheet().addRule(".vml", "behavior:url(#default#VML);display:inline-block;"); if (!document.namespaces.vml && !+"\v1"){ document.namespaces.add("vml", "urn:schemas-microsoft-com:vml"); } } var vml = window.vml = function(name){ return vml.fn.create(name || "rect"); } vml.fn = vml.prototype = { create : function(name){ this.node = document.createElement(<vml: + name + class="vml">); return this; }, appendTo: function(parent){ if(typeof this.node !== "undefined" && parent.nodeType == 1){ parent.appendChild(this.node); } return this; }, attr : function(bag){ for(var i in bag){ if(bag.hasOwnProperty(i)){ this.node.setAttribute(i,bag[i]) } } return this; }, css: function(bag){ var str = ";" for(var i in bag){ if(bag.hasOwnProperty(i)) str += i == "opacity" ? ("filter:alpha(opacity="+ bag[i] * 100+");"):(i+":"+bag[i]+";") } this.node.style.cssText = str; return this; } } })() 最后附上三种创建VML元素的方法: 复制代码 代码如下: var VmlElement = document.createElement(<vml: + tagName + class="vml">); var VmlElement = document.createElement(< + tagName + xmlns="urn:schemas-microsoft.com:vml" class="vml">) var VmlElement = document.createElement(vml: + tagName ); VmlElement.className = "vml";//最后必须把命名空间当作类名加上 //最后必须把命名空间当作类名加上 |