最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavascriptYUI读码日记之YAHOO.util.Dom-Part.3_YUI.Ext相关

来源:动视网 责编:小采 时间:2020-11-27 20:38:49
文档

JavascriptYUI读码日记之YAHOO.util.Dom-Part.3_YUI.Ext相关

JavascriptYUI读码日记之YAHOO.util.Dom-Part.3_YUI.Ext相关:var patterns = { HYPHEN: /(-[a-z])/i, ROOT_TAG: /^body|html$/i }; var toCamel = function(property) { // 如果没有 -[a-z] 字母,则直接返回 if ( !patterns.HYPHEN.test(property) ) { return
推荐度:
导读JavascriptYUI读码日记之YAHOO.util.Dom-Part.3_YUI.Ext相关:var patterns = { HYPHEN: /(-[a-z])/i, ROOT_TAG: /^body|html$/i }; var toCamel = function(property) { // 如果没有 -[a-z] 字母,则直接返回 if ( !patterns.HYPHEN.test(property) ) { return


var patterns = {
HYPHEN: /(-[a-z])/i,
ROOT_TAG: /^body|html$/i
};

var toCamel = function(property) {
// 如果没有 -[a-z] 字母,则直接返回
if ( !patterns.HYPHEN.test(property) ) {
return property;
}

// 如果有缓存,直接返回替换后的值
if (propertyCache[property]) {
return propertyCache[property];
}

// 使用正则替换
var converted = property;
while( patterns.HYPHEN.exec(converted) ) {
converted = converted.replace(RegExp.$1,
RegExp.$1.substr(1).toUpperCase());
}

// 存入缓存
propertyCache[property] = converted;
return converted;
};在 YAHOO.util.Dom 中,getStyle 函数考虑了更多不同浏览器兼容性方面的问题,代码如下

// 使用 W3C DOM 标准的浏览器,比如 Firefox、Opera、Safari
if (document.defaultView && document.defaultView.getComputedStyle) {
getStyle = function(el, property) {
var value = null;

// 重命名部分 CSS 样式名
if (property == 'float') {
property = 'cssFloat';
}

// 获取通过 CSS 加上去的属性
var computed = document.defaultView.getComputedStyle(el, '');
if (computed) {
value = computed[toCamel(property)];
}

return el.style[property] || value;
};
// 如果是 IE 浏览器
} else if (document.documentElement.currentStyle && isIE) {
getStyle = function(el, property) {
switch( toCamel(property) ) {
// “转换”名称为 IE 可以认识的
case 'opacity' :
var val = 100;
try {
val =
el.filters['DXImageTransform.Microsoft.Alpha'].opacity;
} catch(e) {
try {
val = el.filters('alpha').opacity;
} catch(e) {
}
}
// 百分比
return val / 100;
case 'float':
property = 'styleFloat';
default:
var value = el.currentStyle ? el.currentStyle[property] : null;
return ( el.style[property] || value );
}
};
} else {
// 获取内联样式
getStyle = function(el, property) { return el.style[property]; };
}另外,PPK 在他的 Blog 上的有关 getStyle 的阐述,也很精彩,有兴趣的可以去看下。

文档

JavascriptYUI读码日记之YAHOO.util.Dom-Part.3_YUI.Ext相关

JavascriptYUI读码日记之YAHOO.util.Dom-Part.3_YUI.Ext相关:var patterns = { HYPHEN: /(-[a-z])/i, ROOT_TAG: /^body|html$/i }; var toCamel = function(property) { // 如果没有 -[a-z] 字母,则直接返回 if ( !patterns.HYPHEN.test(property) ) { return
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top