JSFiddle - React, Tailwind, and code Playground
HTML
<div id="worng">很抱歉,你的浏览器不支持FileReader方法!请安装Firefox或者Chrome浏览器</div>
<div id="warp">
<ul>
<li><span>图片上传:</span><input type="file" name="file" id="file" /></li>
<li class="line"></li>
<li><span>广告宽度:</span><input type="text" id="adWidth" class="short" value="580" />px</li>
<li><span>广告高度:</span><input type="text" id="adHeight" class="short" value="180" />px</li>
<li class="line"></li>
<li><span>文字背景颜色:</span>
<a class="gray active" rgb="37,37,37">黑色</a>
<a class="white" rgb="255,255,255">白色</a>
<a class="yellow" rgb="244,179,0">黄色</a>
<a class="green" rgb="120,186,0">绿色</a>
<a class="blue" rgb="37,115,236">蓝色</a>
<a class="red" rgb="174,17,61">红色</a>
<a class="coffee" rgb="46,23,0">咖啡</a>
<a class="orange" rgb="176,30,0">橙色</a>
<a class="purple" rgb="114,0,172">紫色</a>
</li>
<li><span>文字背景透明度:</span><input type="text" id="bgOpacity" class="short" value="0.5" /></li>
<li><span>文字背景距离Top:</span><input type="text" id="bgTop" class="short" value="110" />px</li>
<li><span>文字背景高度:</span><input type="text" id="bgHeight" class="short" value="70" />px</li>
<li class="line"></li>
<li><span>标题文字:</span><input type="text" id="titleCon" value="标题文字" /></li>
<li><span>标题字号:</span><input type="text" id="titleSize" class="short" value="25" />px</li>
<li><span>标题颜色:</span><input type="text" id="titleColor" class="short w80" value="#fff" /></li>
<li><span>标题距离Top:</span><input type="text" id="titleTop" class="short" value="140" />px</li>
<li><span>标题距离Left:</span><input type="text" id="titleLeft" class="short" value="10" />px</li>
<li class="line"></li>
<li><span>描述文字:</span><input type="text" id="txtCon" value="描述文字描述描述描述描述" /></li>
<li><span>描述字号:</span><input type="text"...
CSS
*{margin: 0;padding: 0;font:13px Arial;list-style: none;}
#warp{border: 1px solid #ccc;border-radius: 5px;width: 380px;background-color: #ececec;margin: 10px;line-height: 1.5;}
#warp li{margin: 10px;}
#warp li.line{background-color: #ccc;height: 1px;padding: 0;line-height: 1;font-size: 0;}
#warp li span{text-align: right;width: 120px;display: inline-block;}
#warp li #bt{padding: 5px 20px;margin:5px 0 5px 130px;}
#warp li a{display:inline-block;cursor: pointer;border: 1px solid #fff;text-indent: -9999px;width: 15px;height: 15px;}
#warp li a.active{border: 3px solid #000;}
#warp input[type=text]{border-radius: 3px; border: 1px solid #ccc; height: 23px;padding-left: 3px;margin: 0 5px;}
#warp input.short{width:40px;}
#warp input.w80{width:80px;}
#mark{position: absolute;top: 10px;left:420px;}
#worng{border-bottom: 1px solid red; display: none; background-color: #ffb2b2; text-align: center;font-size: 14px; font-weight: bold; padding: 5px 0;}
#showImg{display:none;position: absolute;top: 400px;left:420px;}
#showImg h1{color: red;font-weight: bold;font-family: "微软雅黑";font-size: 16px;}
.white{background-color: white;}
.gray{background-color: gray;}
.yellow{background-color: yellow;}
.green{background-color: green;}
.blue{background-color: blue;}
.red{background-color: red;}
.coffee{background-color: #632f00;}
.orange{background-color: orange;}
.purple{background-color: purple;}
JavaScript
var _CalF = {
$ : function(object){//选择器
if(object === undefined ) return;
var getArr = function(name,tagName,attr){
var tagName = tagName || '*',
eles = document.getElementsByTagName(tagName),
clas = (typeof document.body.style.maxHeight === "undefined") ? "className" : "class";//ie6
attr = attr || clas,
Arr = [];
for(var i=0;i<eles.length;i++){
if(eles[i].getAttribute(attr)==name){
Arr.push(eles[i]);
}
}
return Arr;
};
if(object.indexOf('#') === 0){ //#id
return document.getElementById(object.substring(1));
}else if(object.indexOf('.') === 0){ //.class
return getArr(object.substring(1));
}else if(object.match(/=/g)){ //attr=name
return getArr(object.substring(object.search(/=/g)+1),null,object.substring(0,object.search(/=/g)));
}else if(object.match(/./g)){ //tagName.className
return getArr(object.split('.')[1],object.split('.')[0]);
}
},
addHandler:function(node, type, handler){
node.addEventListener ? node.addEventListener(type, handler, false) : node.attachEvent('on'+ type, handler);
},
removeHandler: function (node, type, handler) {
node.removeEventListener ? node.removeEventListener(type, handler, false) : node.detachEvent("on" + type, handler);
},
getPosition : function(obj) { //获取元素在页面里的位置和宽高
var top = 0,
left = 0,
width = obj.offsetWidth,
height = obj.offsetHeight;
while(obj.offsetParent){
top += obj.offsetTop;
left += obj.offsetLeft;
obj = obj.offsetParent;
}
return {"top":top,"left":left,"width":width,"height":height};
},
addClass:function(c,node){ // 添加样式名
node.className = node.className + ' ' + c;
},
removeClass:function(c,node){ // 移除样式名
var reg = new RegExp("(^|\\s+)" + c +...