1/* 2 text-shadow for MSIE with jQuery 3 http://asamuzak.jp 4*/ 5 6var isMSIE = /*@cc_on!@*/false; 7var ieVersion = (function(reg) { return isMSIE && navigator.userAgent.match(reg) ? RegExp.$1 * 1 : null; })(/MSIE\s([0-9]+[\.0-9]*)/); 8 9var cNum = (function(n) { return function() { return n++; }})(0); 10 11function showElm(eId) { 12 var elm = document.getElementById(eId); 13 elm && (elm.style.visibility = 'visible'); 14} 15function hideElm(eId) { 16 var elm = document.getElementById(eId); 17 elm && (elm.style.visibility = 'hidden'); 18} 19 20(function($) { 21 $.fn.textShadowForMSIE = function(sObj) { 22 var getCompStyle = function(elm, pseudo) { 23 return isMSIE && ieVersion < 9 ? elm.currentStyle : pseudo != null ? document.defaultView.getComputedStyle(elm, pseudo) : document.defaultView.getComputedStyle(elm, ''); 24 }; 25 var getAncestObj = function(pElm) { 26 var arr = []; 27 if(pElm = pElm.parentNode) { 28 for(arr[arr.length] = pElm; pElm.nodeName.toLowerCase() != "body";) { 29 (pElm = pElm.parentNode) && (arr[arr.length] = pElm); 30 } 31 } 32 return arr; 33 }; 34 var convPercentTo256 = function(cProf) { 35 if(cProf.match(/(rgba?)\(\s*([0-9\.]+%?\s*,\s*[0-9\.]+%?\s*,\s*[0-9\.]+%?)\s*(,\s*[01]?[\.0-9]*)?\s*\)/)) { 36 for(var cType = RegExp.$1, arr = RegExp.$2.split(/,/), aCh = (RegExp.$3 || ''), rgbArr = [], i = 0, l = arr.length; i < l; i++) { 37 arr[i].match(/([0-9\.]+)%/) && (arr[i] = Math.round(RegExp.$1 * 255 / 100)); 38 rgbArr[rgbArr.length] = arr[i]; 39 } 40 return cType + '(' + rgbArr.join(',') + aCh + ')'; 41 } 42 }; 43 var convUnitToPx = function(sUnit, obj) { 44 var getUnitRatio = function(sUnit) { 45 var elm, val, dId = cNum(), dBox = document.createElement('div'), dBody = document.getElementsByTagName('body')[0]; 46 dBox.id = 'dummyDiv' + dId; dId++; 47 dBox.style.width = sUnit; 48 dBox.style.height = 0; 49 dBox.style.visibility = 'hidden'; 50 dBody.appendChild(dBox); 51 elm = document.getElementById(dBox.id); 52 val = Math.abs(elm.getBoundingClientRect().right - elm.getBoundingClientRect().left); 53 dBody.removeChild(elm); 54 return val; 55 }; 56 if(sUnit.match(/^0(em|ex|px|cm|mm|in|pt|pc)?$/)) { 57 return 0; 58 } 59 else if(sUnit.match(/^(\-?[0-9\.]+)px$/)) { 60 return RegExp.$1 * 1; 61 } 62 else if(sUnit.match(/^(\-?[0-9\.]+)(cm|mm|in|pt|pc)$/)) { 63 return RegExp.$1 * 1 >= 0 ? getUnitRatio(sUnit) : getUnitRatio((RegExp.$1 * -1) + RegExp.$2) * -1; 64 } 65 else if(sUnit.match(/^(\-?[0-9\.]+)(em|ex)$/)) { 66 var val = RegExp.$1 * 1 >= 0 ? (getUnitRatio(sUnit) / getUnitRatio('1em')) : (getUnitRatio((RegExp.$1 * -1) + RegExp.$2) / getUnitRatio('1em') * -1), arr = getAncestObj(obj), dRoot = document.getElementsByTagName('html')[0], fSize = []; 67 arr.unshift(obj); arr[arr.length] = dRoot; 68 for(var i = 0, l = arr.length; i < l; i++) { 69 fSize[fSize.length] = getCompStyle(arr[i]).fontSize; 70 } 71 for(i = 0, l = fSize.length; i < l; i++) { 72 if(fSize[i].match(/^([0-9\.]+)%$/)) { 73 val *= (RegExp.$1 / 100); 74 } 75 else if(fSize[i].match(/^[0-9\.]+(em|ex)$/)) { 76 val *= (getUnitRatio(fSize[i]) / getUnitRatio('1em')); 77 } 78 else if(fSize[i].match(/^smaller$/)) { 79 val /= 1.2; 80 } 81 else if(fSize[i].match(/^larger$/)) { 82 val *= 1.2; 83 } 84 else if(fSize[i].match(/^([0-9\.]+)(px|cm|mm|in|pt|pc)$/)) { 85 val *= getUnitRatio(fSize[i]); 86 break; 87 } 88 else if(fSize[i].match(/^xx\-small$/)) { 89 val *= (getUnitRatio(getCompStyle(dRoot).fontSize) / 1.728); 90 break; 91 } 92 else if(fSize[i].match(/^x\-small$/)) { 93 val *= (getUnitRatio(getCompStyle(dRoot).fontSize) / 1.44); 94 break; 95 } 96 else if(fSize[i].match(/^small$/)) { 97 val *= (getUnitRatio(getCompStyle(dRoot).fontSize) / 1.2); 98 break; 99 } 100 else if(fSize[i].match(/^medium$/)){ 101 val *= getUnitRatio(getCompStyle(dRoot).fontSize); 102 break; 103 } 104 else if(fSize[i].match(/^large$/)) { 105 val *= (getUnitRatio(getCompStyle(dRoot).fontSize) * 1.2); 106 break; 107 } 108 else if(fSize[i].match(/^x\-large$/)) { 109 val *= (getUnitRatio(getCompStyle(dRoot).fontSize) * 1.44); 110 break; 111 } 112 else if(fSize[i].match(/^xx\-large$/)) { 113 val *= (getUnitRatio(getCompStyle(dRoot).fontSize) * 1.728); 114 break; 115 } 116 else if(fSize[i].match(/^([0-9\.]+)([a-z]+)/)) { 117 val *= getUnitRatio(fSize[i]); 118 break; 119 } 120 else { 121 break; 122 } 123 } 124 return Math.round(val); 125 } 126 }; 127 var removeDupFunc = function(fStr) { 128 for(var arr = fStr.replace(/\s+/, '').split(/;/), fArr = [], bool, i = 0, l = arr.length; i < l; i++) { 129 bool = true; 130 for(var j = i; j < l; j++) { 131 i != j && arr[i] == arr[j] && (bool = false); 132 } 133 bool && arr[i] != '' && (fArr[fArr.length] = arr[i]); 134 } 135 return fArr.join(';') + ';'; 136 }; 137 var revArr = function(arr) { 138 for(var rArr = [], i = 0, l = arr.length; i < l; i++) {
139 rArr.unshift(arr[i]); 140 } 141 return rArr; 142 }; 143 var getShadowValue = function() { 144 if(sObj.sValue.match(/none/)) { 145 return 'none'; 146 } 147 else { 148 for(var val = [], arr = sObj.sValue.match(/((rgba?\(\s*[0-9\.]+%?\s*,\s*[0-9\.]+%?\s*,\s*[0-9\.]+%?\s*(,\s*[01]?[\.0-9]*\s*)?\)|#[0-9a-fA-F]{3,6}|[a-zA-Z]+)\s)?(\-?[0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?\s*){2,3}(rgba?\(\s*[0-9\.]+%?\s*,\s*[0-9\.]+%?\s*,\s*[0-9\.]+%?\s*(,\s*[01]?[\.0-9]*\s*)?\)|#[0-9a-fA-F]{3,6}|[a-zA-Z]+)?/g), i = 0, l = arr.length; i < l; i++) { 149 val[i] = { x : '0', y : '0', z : '0', cProf : null }; 150 var uArr = arr[i].match(/\-?[0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?\s+\-?[0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?(\s+[0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?)?/); 151 if(uArr = uArr[0].split(/\s+/), uArr[0].match(/^(\-?[0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?)$/) && uArr[1].match(/^(\-?[0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?)$/)) { 152 uArr.length >= 2 && (val[i].x = uArr[0], val[i].y = uArr[1]); 153 uArr.length == 3 && uArr[2].match(/^([0-9\.]+(em|ex|px|cm|mm|in|pt|pc)?)$/) && (val[i].z = uArr[2]); 154 arr[i].match(/%/) && (arr[i] = convPercentTo256(arr[i])); 155 arr[i].match(/^(rgba?\(\s*[0-9]+\s*,\s*[0-9]+\s*,\s*[0-9]+\s*(,\s*[01]?[\.0-9]*\s*)?\)|[a-zA-Z]+)/) ? (val[i].cProf = RegExp.$1) : 156 arr[i].match(/\s(rgba?\(\s*[0-9]+\s*,\s*[0-9]+\s*,\s*[0-9]+\s*(,\s*[01]?[\.0-9]*\s*)?\)|#[0-9a-fA-F]{3,6}|[a-zA-Z]+)$/) && (val[i].cProf = RegExp.$1); 157 } 158 else { 159 val = 'invalid'; 160 break; 161 } 162 } 163 return val; 164 } 165 }; 166 var setShadowNodeColor = function(elm) { 167 for(var arr = elm.childNodes, i = 0, l = arr.length; i < l; i++) { 168 if(arr[i].nodeType == 1) { 169 !arr[i].hasChildNodes() ? arr[i].style.visibility = 'hidden' : (arr[i].style.color = elm.style.color, setShadowNodeColor(arr[i])); 170 } 171 } 172 }; 173 var hideAncestShadow = function(oElm, pElm) { 174 for(var arr = pElm.childNodes, i = 0, l = arr.length; i < l; i++) { 175 if(arr[i].hasChildNodes()) { 176 arr[i].nodeName.toLowerCase() == oElm.tagName.toLowerCase() && arr[i].firstChild == oElm.firstChild ? arr[i].style.visibility = 'hidden' : hideAncestShadow(oElm, arr[i]); 177 } 178 } 179 }; 180 var boolShadowChild = function(elm) { 181 for(var bool = true, arr = getAncestObj(elm), i = 0, l = arr.length; i < l; i++) { 182 if(arr[i].tagName.toLowerCase() == 'span' && arr[i].className.match(/dummyShadow/)) { 183 bool = false; 184 break; 185 } 186 } 187 return bool; 188 }; 189 var setShadow = function(elm) { 190 var sShadow = getShadowValue(); 191 if(sShadow != 'invalid') { 192 for(var arr = [], nArr = elm.childNodes, bool = false, i = 0, l = nArr.length; i < l; i++) { 193 if(nArr[i].nodeName.toLowerCase() == 'span' && nArr[i].className.match(/dummyShadow/)) { 194 nArr[i].className.match(/hasImp/) && (bool = true); 195 arr[arr.length] = nArr[i].id; 196 } 197 } 198 if(bool == false || hasImp == true) { 199 var mOver = elm.getAttribute('onmouseover') || ''; 200 var mOut = elm.getAttribute('onmouseout') || ''; 201 mOver != '' && !mOver.match(/;$/) && (mOver += ';'); 202 mOut != '' && !mOut.match(/;$/) && (mOut += ';'); 203 for(i = 0, l = arr.length; i < l; i++) { 204 if(sObj.onHover && sShadow == 'none') { 205 mOver += "hideElm('" + arr[i] + "');"; 206 mOut += "showElm('" + arr[i] + "');"; 207 } 208 else if(!(sObj.onHover && sShadow != 'none')) { 209 elm.removeChild(document.getElementById(arr[i])); 210 } 211 } 212 sObj.onHover && sShadow == 'none' && (elm.setAttribute('onmouseover', mOver), elm.setAttribute('onmouseout', mOut)); 213 for(var aBg, arr = getAncestObj(elm), i = 0, l = arr.length; i < l; i++) { 214 aBg == null && (getCompStyle(arr[i]).backgroundColor != 'transparent' || getCompStyle(arr[i]).backgroundImage != 'none') && (aBg = arr[i]); 215 for(var cArr = arr[i].childNodes, j = 0, k = cArr.length; j < k; j++) { 216 cArr[j].nodeType == 1 && cArr[j].nodeName.toLowerCase() == 'span' && cArr[j].className.match(/dummyShadow/) && hideAncestShadow(elm, document.getElementById(cArr[j].id)); 217 } 218 } 219 sShadow != 'none' && sShadow.length > 1 && (getCompStyle(elm).backgroundColor != 'transparent' || getCompStyle(elm).backgroundImage != 'none') && (sShadow = revArr(sS
219hadow)); 220 if(sShadow == 'none' && sObj.onHover == false) { 221 for(var arr = elm.parentNode.childNodes, i = 0, l = arr.length; i < l; i++) { 222 if(arr[i].nodeName.toLowerCase() == 'span' && arr[i].className == 'dummyShadow') { 223 getCompStyle(elm).display == 'inline-block' && (elm.style.display = 'inline'); 224 getCompStyle(elm).position == 'relative' && (elm.style.position = 'static'); 225 break; 226 } 227 } 228 } 229 if(sShadow != 'none' && nArr.length != 0 && boolShadowChild(elm)) { 230 for(var hArr = [], clNode = elm.cloneNode(true), arr = clNode.childNodes, i = 0, l = arr.length; i < l; i++) { 231 arr[i] != null && arr[i].hasChildNodes() && arr[i].nodeName.toLowerCase() == 'span' && arr[i].className.match(/dummyShadow/) && (hArr[hArr.length] = arr[i].id, clNode.removeChild(arr[i])); 232 } 233 var sNode = clNode.innerHTML; 234 ieVersion == 9 && (sNode = sNode.replace(/\n/, ' ')); 235 ieVersion == 8 && (elm.innerHTML = elm.innerHTML); 236 for(i = 0, l = sShadow.length; i < l; i++) { 237 var pxRad = convUnitToPx(sShadow[i].z, elm); 238 var xPos = convUnitToPx(sShadow[i].x, elm) - pxRad + convUnitToPx(getCompStyle(elm).paddingLeft, elm); 239 getCompStyle(elm).textAlign == 'center' && (xPos -= ((convUnitToPx(getCompStyle(elm).paddingLeft, elm) + convUnitToPx(getCompStyle(elm).paddingRight, elm)) / 2)); 240 var yPos = convUnitToPx(sShadow[i].y, elm) - pxRad + convUnitToPx(getCompStyle(elm).paddingTop, elm); 241 if(ieVersion == 7 && pxRad == 0) { 242 xPos >= 0 && (xPos -= 1); 243 yPos >= 0 && (yPos -= 1); 244 } 245 var sColor = sShadow[i].cProf || getCompStyle(elm).color; 246 var sOpacity = 0.6; 247 sShadow[i].cProf != null && sShadow[i].cProf.match(/rgba\(\s*([0-9]+\s*,\s*[0-9]+\s*,\s*[0-9]+)\s*,\s*([01]?[\.0-9]*)\)/) && (sColor = 'rgb(' + RegExp.$1 + ')', sOpacity = (RegExp.$2 * 1)); 248 var sBox = document.createElement('span'); 249 var sId = cNum(); 250 sBox.id = 'dummyShadow' + sId; sId++; 251 sBox.className = (sObj.hasImp == true) ? 'dummyShadow hasImp' : 'dummyShadow'; 252 sBox.style.display = 'block'; 253 sBox.style.position = 'absolute'; 254 sBox.style.left = xPos + 'px'; 255 sBox.style.top = yPos + 'px'; 256 sBox.style.width = '100%'; 257 sBox.style.color = sColor; 258 sBox.style.filter = 'progid:DXImageTransform.Microsoft.Blur(PixelRadius=' + pxRad + ', MakeShadow=false, ShadowOpacity=' + sOpacity + ')'; 259 sBox.style.zIndex = -(i + 1); 260 sBox.innerHTML = sNode; 261 if(getCompStyle(elm).display == 'inline') { 262 elm.style.display = 'inline-block'; 263 } 264 if(!(getCompStyle(elm).position == 'absolute' || getCompStyle(elm).position == 'fixed')) { 265 elm.style.position = 'relative'; 266 ieVersion == 7 && (elm.style.top = getCompStyle(elm).paddingTop); 267 } 268 if(getCompStyle(elm).backgroundColor != 'transparent' || getCompStyle(elm).backgroundImage != 'none') { 269 getCompStyle(elm).zIndex != ('auto' || null) ? (sBox.style.zIndex = elm.style.zIndex) : (elm.style.zIndex = sBox.style.zIndex = -1); 270 } 271 if(aBg && aBg.tagName.toLowerCase() != 'body') { 272 elm.style.zIndex = 1; sBox.style.zIndex = -1; 273 } 274 ieVersion == 7 && getCompStyle(elm).lineHeight.match(/^([0-9\.]+)(em|ex|px|cm|mm|in|pt|pc|%)?$/) && (elm.style.minHeight = !RegExp.$2 ? convUnitToPx(RegExp.$1 + 'em', elm) : RegExp.$2 == '%' ? convUnitToPx((RegExp.$1 / 100) + 'em', elm) : convUnitToPx(RegExp.$1 + RegExp.$2, elm)); 275 elm.appendChild(sBox); 276 if(sObj.onHover) { 277 sBox.style.visibility = 'hidden'; 278 mOver = elm.getAttribute('onmouseover') || ''; 279 mOut = elm.getAttribute('onmouseout') || ''; 280 mOver != '' && !mOver.match(/;$/) && (mOver += ';'); 281 mOut != '' && !mOut.match(/;$/) && (mOut += ';'); 282 mOver += ("showElm('" + sBox.id + "');"); 283 mOut += ("hideElm('" + sBox.id + "');"); 284 if(hArr.length > 0) { 285 for(j = 0, k = hArr.length; j < k; j++) { 286 var hElm = document.getElementById(hArr[j]); 287 if(hElm) { 288 mOver += ("hideElm('" + hElm.id + "');"); 289 mOut += ("showElm('" + hElm.id + "');"); 290 } 291 } 292 } 293 elm.setAttribute('onmouseover', removeDupFunc(mOver)); 294 elm.setAttribute('onmouseout', removeDupFunc(mOut)); 295 } 296 setShadowNodeColor(document.getElementById(sBox.id)); 297 } 298 } 299 } 300 } 301 }; 302 return this.each(function() { 303 setShadow(this); 304 });
305 }; 306})(jQuery); 307 308$().ready(function() { 309 if(ieVersion >= 7 && ieVersion <= 9) { 310 var ieShadowSettings = function() { 311 var sArr = []; 312 sArr = cssShadowValues(); 313 // èªåçã«ã¹ã¿ã¤ã«ã·ã¼ãããtext-shadowå¤ãèªã¿è¾¼ã¿ã¾ã 314 // èªã¿è¾¼ã¾ãããå ´åã¯ä¸è¨1è¡ï¼sArr = cssShadowValues();ï¼ã®ã³ã¡ã³ããã¼ã¯ãåé¤ã®ã㨠315 // Loads text-shadow values from stylesheets automatically. 316 // If you want to try it, strip the comment mark at the line above (sArr = cssShadowValues();). 317 var arr = [ 318 // ããã«text-shadowãé©ç¨ãããã»ã¬ã¯ã¿ã®é åã¨å½±ã®å¤ãè¨è¿° 319 // ã»ã¬ã¯ã¿æ¯ã«ãã«ã³ãåºåããã§é åã追å ï¼ã«ã³ããå¿ããã¨ã¨ã©ã¼çºçï¼ 320 // Write your shadow settings here, like below. 321 // { sel : 'h1', shadow : '2px 2px 2px gray' }, 322 // { sel : 'em', shadow : '1px 1px 1px rgb(0, 100, 100)' } 323 ]; 324 return sArr.concat(arr); 325 }; 326 var cssShadowValues = function() { 327 var getCssValues = function(prop) { 328 var sReg = prop.match(/(\-)/) ? prop.replace(RegExp.$1, '\\\-') : prop; 329 sReg += '\\s*:\\s*([0-9a-zA-Z\\s\\-\\+\\*\\\&#\\.\\(\\)%\\,\\!\\"\\\'\\>\\<\\\\]+);?'; 330 var getCssRules = function(sSheet) { 331 for(var arr = [], sRules = sSheet.cssRules || sSheet.rules, i = 0, l = sRules.length; i < l; i++) { 332 if(sRules[i].type) { 333 sRules[i].type == 3 && (arr = arr.concat(getCssRules(sRules[i].styleSheet))); 334 if(sRules[i].type == 4) { 335 /* 336 * matchMedia() polyfill - test whether a CSS media type or media query applies 337 * authors: Scott Jehl, Paul Irish, Nicholas Zakas 338 * Copyright (c) 2011 Scott, Paul and Nicholas. 339 * Dual MIT/BSD license 340 * Original Source matchMedia.js https://github.com/paulirish/matchMedia.js 341 * Revised by Kazz http://asamuzak.jp 342 */ 343 window.matchMedia = window.matchMedia || (function() { 344 return function(q) { 345 var bool, 346 dHead = document.getElementsByTagName('head')[0], 347 dBody = document.getElementsByTagName('body')[0], 348 dStyle = document.createElement('style'), 349 dDiv = document.createElement('div'), 350 dId = cNum(); 351 dDiv.id = 'dDiv' + dId; dId++; 352 dDiv.style.cssText = 'margin:0;border:0;padding:0;height:0;visibility:hidden;'; 353 dHead.appendChild(dStyle); 354 dBody.appendChild(dDiv); 355 dStyle.setAttribute('media', q); 356 dStyle.innerHTML = '#' + dDiv.id + '{ width:42px; }'; 357 bool = dDiv.offsetWidth == 42; 358 dBody.removeChild(dDiv); 359 dHead.removeChild(dStyle); 360 return { matches: bool, media: q }; 361 }; 362 })(); 363 /* end matchMedia.js */ 364 window.matchMedia(sRules[i].media.mediaText).matches && (arr = arr.concat(getCssRules(sRules[i]))); 365 } 366 sRules[i].type == 1 && sRules[i].style.cssText.match(sReg) && (arr[arr.length] = { sel : sRules[i].selectorText, prop : prop, val : RegExp.$1 }); 367 } 368 else { 369 var sText = sRules[i].style.cssText || sRules[i].cssText; 370 if(sText) { 371 sText.match(sReg) && (arr[arr.length] = { sel : sRules[i].selectorText, prop : prop, val : RegExp.$1 }); 372 } 373 } 374 } 375 return arr; 376 }; 377 if(document.styleSheets) { 378 for(var arr = [], sArr = document.styleSheets, i = 0, l = sArr.length; i < l; i++) { 379 if(isMSIE && ieVersion < 9 && sArr[i].imports) { 380 for(var iArr = sArr[i].imports, j = 0, k = iArr.length; j < k; j++) { 381 iArr[j] != undefined && (arr = arr.concat(getCssRules(iArr[j]))); 382 } 383 } 384 arr = arr.concat(getCssRules(sArr[i])); 385 } 386 } 387 for(var aTag = document.getElementsByTagName('*'), oId = cNum(), i = 0, l = aTag.length; i < l; i++) { 388 if(aTag[i].style != null && aTag[i].style.cssText.match(sReg)) { 389 aTag[i].id == '' && (aTag[i].id = 'objId' + oId, oId++); 390 arr[arr.length] = { sel : '#' + aTag[i].id, prop : prop, val : RegExp.$1 }; 391 } 392 } 393 return arr; 394 } 395 for(var arr = [], sArr = getCssValues('text-shadow'), revReg = /^(#[0-9a-fA-F]{3,6})\s+([0-9a-zA-Z\s\-\.\(\)%\,\!]+)$/, i = 0, l = sArr.length; i < l; i++) { 396 arr[arr.length] = { sel : sArr[i].sel, shadow : sArr[i].val.match(revReg) ? RegExp.$2 + ' ' + RegExp.$1 : sArr[i].val }; 397 } 398 return arr; 399 }; 400 for(var arr = ieShadowSettings(), i = 0, l = arr.length; i < l; i++) { 401 for(var sArr = arr[i].sel.split(/\s*,\s*/), j = 0, k = sArr.length; j < k; j++) { 402 var sObj = { sValue : arr[i].shadow, onHover : sArr[j].match(/:hover/) ? true : false, hasImp : arr[i].shadow.match(/\s*\!\s*important/) ? true : false }; 403 sObj.onHover && (sArr[j] = sArr[j].replace(/:hover/, '')); 404 sObj.hasImp && (sObj.sValue = sObj.sValue.replace(/\s*\!\s*important/, '')); 405 $(sArr[j]).textShadowForMSIE(sObj); 406 } 407 } 408 } 409 /* Sample to change shadow color at interactive events (eg: $().bind()) */ 410 /* 411 $('#someId').bind('click', function() { 412 var eId = $(this).attr('id'); 413 var eObj = { sel : '#' + eId, shadow : 'green 2px 2px 2px' }; 414 if(ieVersion >= 7 && ieVersion <= 9) { 415 eObj.shadow.match(/(\s*\!\s*important)/) ? 416 $(this).textShadowForMSIE({ sValue : eObj.shadow.replace(RegExp.$1, ''), onHover : false, hasImp : true }) : 417 $(this).textShadowForMSIE({ sValue : eObj.shadow, onHover : false, hasImp : false }); 418 } 419 else if(ieVersion > 9 || !isMSIE) { 420 var elm = document.getElementById(eId); 421 eObj.shadow.match(/(\s*\!\s*important)/) ? 422 elm.style.setProperty('text-shadow', eObj.shadow.replace(RegExp.$1, ''), 'important') : 423 elm.style.setProperty('text-shadow', eObj.shadow, ''); 424 } 425 }); 426 */ 427});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.