2011-12-29 58 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,但是。製作一個實用程序對象並將其添加爲一種方法。