2011-12-29 25 views
2

在Javascript中是否有方法检查某个元素是否已应用了箱形阴影?检查是否已应用箱形阴影

我这样做是因为我在添加一个内部(插入)框阴影时,可能已经有一个外部阴影。如果已经有阴影,我需要在新的样式文本之前放置一个逗号。

var shadowStyle = "5px 5px #000000"; 

if (ele.hasBoxShadow()) 
{ 
    ele.style.boxShadow += ", "+shadowStyle; 
    ele.style.WebkitBoxShadow += ", "+shadowStyle; 
    ele.style.MozBoxShadow += ", "+shadowStyle; 
    ele.style.OBoxShadow += ", "+shadowStyle; 
    ele.style.MsBoxShadow += ", "+shadowStyle; 
} 
else ele.style.boxShadow = shadowStyle; 
    ... 
+0

难道你不能只检查是否有任何设置? 'if(ele.style.boxShadow || ele.style.Web ...)'。 – FakeRainBrigand 2011-12-29 04:15:41

回答

1

如果你想要这样做ele.hasBoxShadow()

Element.prototype.hasBoxShadow = function() { 
    return window 
      .getComputedStyle(this) 
      .getPropertyCSSValue('box-shadow') 
      .cssText != 'none'; 
} 

jsFiddle

它还works如果该属性设置与供应商的前缀(至少它在Firefox 8)

我不会建议扩充该Elementprototype,但是。制作一个实用程序对象并将其添加为一种方法。