2011-12-29 6 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

答えて

1

ele.hasBoxShadow()としたい場合は、

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

jsFiddle

またworksプロパティは、ベンダープレフィックスで設定されている場合は(少なくともそれは、Firefox 8でない)

しかし私は、Element年代prototypeを増大させることをお勧めしません。 ユーティリティオブジェクトを作成し、これをメソッドとして追加します。

関連する問題