javascript克隆元素样式的实现代码
JavaScript代码 实现 元素 样式 克隆
2023-06-13 09:14:31 时间
/**
*克隆元素样式
*@param{HTMLElement}被克隆的元素
*@param{Boolean}是否启用缓存(默认true)
*@return{String}css类名
*/
varcloneStyle=(function(doc){
varrstyle=/^(number|string)$/,
cloneName="${cloneName}",
sData={},
addHeadStyle=function(content){
varstyle=sData[doc];
if(!style){
style=sData[doc]=doc.createElement("style");
doc.getElementsByTagName("head")[0].appendChild(style);
};
style.styleSheet&&(style.styleSheet.cssText+=content)||style.appendChild(doc.createTextNode(content));
},
getStyle="getComputedStyle"inwindow?function(elem,name){
returngetComputedStyle(elem,null)[name];
}:function(elem,name){
returnelem.currentStyle[name];
};
returnfunction(source,cache){
if(!cache&&source[cloneName])returnsource[cloneName];
varclassName,name,
cssText=[],
sStyle=source.style;
for(nameinsStyle){
val=getStyle(source,name);
if(val!==""&&rstyle.test(typeofval)){
name=name.replace(/([A-Z])/g,"-$1").toLowerCase();
cssText.push(name);
cssText.push(":");
cssText.push(val);
cssText.push(";");
};
};
cssText=cssText.join("");
source[cloneName]=className="clone"+(newDate).getTime();
addHeadStyle("."+className+"{"+cssText+"}");
returnclassName;
};
}(document));
演示:
相关文章
- JavaScript一行代码
- 常用的JavaScript代码块
- 屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键的javascript代码
- 访问百度和谷歌网速测试的javascript代码
- javascript下给元素添加事件的方法与代码
- ASP、PHP与javascript根据时段自动切换CSS皮肤的代码
- Javascript区别浏览器代码
- Javascript两个窗体之间传值实现代码
- jQuery与javascript对照学习获取父子前后元素实现代码
- JavaScript未知高度元素垂直居中实现代码
- JavaScript空位补零实现代码
- javascript新闻标题静态分页代码(无刷新)
- 动态载入/删除/更新外部JavaScript/Css文件的代码
- 在PHP中实现Javascript的escape()函数代码
- javascript模拟select实现代码
- PHP中输出转义JavaScript代码的实现代码
- javascript简单拖拽实现代码(鼠标事件mousedownmousemovemouseup)
- 实现网页内容水平或垂直滚动的Javascript代码
- javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
- 『JavaScript』限制Input只能输入数字实现思路及代码
- Javascript实现动态菜单添加的实例代码
- JavaScript?Apple设备检测示例代码
- javascript获取ckeditor编辑器的值(实现代码)
- javascript实现json页面分页实例代码
- javascript实现倒计时N秒后网页自动跳转代码
- 用JavaScript实现使用鼠标画线的示例代码
- 在JavaScript中构建ArrayList示例代码