给div动态添加样式

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>动态应用CSS样式</title>
  5.     <script type="text/javascript">
  6.         全局变量
  7.         //命名空间
  8.         var lee = {};
  9.         Css文本解析
  10.         /*
  11.          * 将CSS文本转成JSON对象
  12.          * @return json
  13.          */
  14.         lee.cssFormatToJSON = function(cssTxt){
  15.             var s = cssTxt.replace(/[ {}]/g, "");        
  16.             var arr = s.split(";");
  17.             var o = {};
  18.             for(var i = 0; i < arr.length; i++){
  19.                 if(arr[i].length > 2){
  20.                     var arr2 = arr[i].split(':');
  21.                     o[arr2[0]] = arr2[1].toString();
  22.                 }
  23.             }
  24.             return o;
  25.         };
  26.         lee.cssStyleNameToJsName = function(name){
  27.             if(name == "float")
  28.                 return "cssFloat";
  29.             else if(name.indexOf('-') > -1){
  30.                 var i = name.indexOf('-');
  31.                 return name.substring(0, i) + name.substr(i+1, 1).toUpperCase() + name.substring(i+2);
  32.             }
  33.             else
  34.                 return name;
  35.         };
  36.         lee.cssTextToJsNameJSON = function(cssTxt){
  37.             var s = cssTxt.replace(/[ {}]/g, "");        
  38.             var arr = s.split(";");
  39.             var o = {};
  40.             for(var i = 0; i < arr.length; i++){
  41.                 if(arr[i].length > 2){
  42.                     var arr2 = arr[i].split(':');
  43.                     var name = lee.cssStyleNameToJsName(arr2[0]);
  44.                     o[name] = arr2[1].toString();
  45.                 }
  46.             }
  47.             return o;
  48.         };
  49.         垃圾回收
  50.         lee.gc = function(d){
  51.             var a = d.attributes, i, l, n;
  52.             if(a){
  53.                 l = a.length;
  54.                 for(i = 0; i < 1; ++i){
  55.                     n = a[i].name;
  56.                     if(typeof d[n] === 'function'){
  57.                         d[n] = null;
  58.                     }
  59.                 }
  60.             }
  61.             a = d.childNodes;
  62.             if(a){
  63.                 l = a.length;
  64.                 for(i = 0; i < l; ++i){
  65.                     purge(d.childNodes[i]);
  66.                 }
  67.             }
  68.         }
  69.         Div类
  70.         function Div(){
  71.             this.div = document.createElement("div");
  72.         }
  73.         Div.prototype.addStyle = function(cssTxt){
  74.             var o = lee.cssTextToJsNameJSON(cssTxt);
  75.             for(var n in o)
  76.                 this.div.style[n] = o[n];    
  77.         };
  78.         Div.prototype.appendParent = function(parent){
  79.             this.parent = parent;
  80.             this.parent.appendChild(this.div);
  81.         };
  82.         Div.prototype.removeSelf = function(){
  83.             lee.gc(this.div);
  84.             this.parent.removeChild(this.div);
  85.         };
  86.         Div.prototype.addEvent = function(type, func){
  87.             //IE浏览器
  88.             if(this.div.attachEvent)
  89.                 this.div.attachEvent("on" + type, func);
  90.             //火狐浏览器
  91.             else if(this.div.addEventListener)
  92.                 this.div.addEventListener(type, func, false);
  93.         };
  94.     </script>
  95. </head>
  96. <body>
  97.     <script type="text/javascript">        
  98.         测试代码
  99.         var div = new Div();
  100.         //目前还不支持类似于{border:solid 1px red;}这样的结构
  101.         div.addStyle("{position:absolute;left:200px;top:60px;width:100px;height:100px; backgroundColor:#EFEFEF;border-style:solid;border-color:orange;border-width:2px;}");
  102.         div.appendParent(document.body);        
  103.         div.addEvent('click'function(){div.removeSelf.apply(div,[]);});
  104.     </script>
  105. </body>
  106. </html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值