2011-10-16 44 views
3

我想改變箱體陰影顏色作爲我從數據庫中獲得的值的結果。如何用jquery或以某種方式更改內框陰影顏色?

基本上是我做的是:

if (dbValue==1) 
     $('.myDivClass').css("box-shadow","0px 0px 30px #333333"); 
else 
$('.myDivClass').css("box-shadow","0px 0px 30px #999999"); 

對瀏覽器的支持,我應該爲-webkit-moz將該值設置爲好。

我認爲這不被支持,它也需要有插入值的地方,以使其內部的陰影。

我已經搜索了jquery插件以及我發現了boxShadow方法只改變陰影顏色以外。有沒有辦法做到這一點?我錯過了什麼。我能做什麼我認爲是創建不同的css類與不同的內部box-shadow和jquery我可以添加和刪除類到一個div來更改box-shadow。這在我看來,這樣做的另一種方式,但我要確保,如果沒有改變

box-shadow: inset 0px 0px 20px #257d0d; 
直接

box-shadow顏色的方式嗎?

回答

4

您應該只需將元素添加到元素中即可。

CSS:

.boxShadow { 
-webkit-box-shadow: inset 0px 0px 30px #333333; 
-moz-box-shadow: inset 0px 0px 30px #333333; 
box-shadow: inset 0px 0px 30px #333333; 
} 
.boxShadow2 { 
-webkit-box-shadow: inset 0px 0px 30px #999999; 
-moz-box-shadow: inset 0px 0px 30px #999999; 
box-shadow: inset 0px 0px 30px #999999; 
} 

的JavaScript:

if (dbValue==1) 
     $('.myDivClass').removeClass('boxShadow boxShadow2').addClass('boxShadow'); 
else 
$('.myDivClass').removeClass('boxShadow boxShadow2').addClass('boxShadow2'); 

正如你可以看到我所做的盒子陰影插圖爲你,如果你還希望它是一個插圖框陰影。

希望這會有所幫助。

編輯:我修改了代碼,刪除每個類一個新的,以防萬一有人加入之前需要它有一天...

+0

我需要先刪除其他類之前我添加一個我想顯示? – akd

+0

不是,因爲元素可以有多個類。所以你不必刪除任何類。 :) – Nathan

+0

我知道,但我在這裏困惑的是,想象我會有一個元素,如果我不刪除一個boxShadow類中的一個,並不斷添加它們如何去解決它,哪一個將被應用到元素?另外我還想知道的是,因爲這個函數每隔10秒就會調用一次,所以每10秒我就會把這個類加入到元素中。所以如果一個元素已經具有相同的類,並且如果我嘗試添加同一個類,它的行爲如何?是否有任何機制檢查它,否則它會繼續在div中添加相同的名稱類別?謝謝:) – akd

0
.boxShadow { 
    -webkit-box-shadow: inset 0px 0px 30px rgba(1,2,3,0); 
    -moz-box-shadow: inset 0px 0px 30px rgba(1,2,3,0); 
    box-shadow: inset 0px 0px 30px rgba(1,2,3,0); 
} 

$('#m-div').css('box-shadow').replace(/rgba\([1\s]+,[2\s]+,[3\s]+,[0\s]+\)+/g,'red') 

我在一些瀏覽器使用REG-EX,因爲一種顏色可以使用不同的格式返回例如透明返回在鉻作爲rgba(0,0,0,0)