2010-04-21 13 views
6

CSS3 metin gölgesi olan bir açıklığa tıkladığımda 4 değişken almak istiyorum. text-shadow: -4px 11px 8px rgb(30, 43, 2); bir css görgü Yani, benim kodu olmalıdır: ben bir şekilde bu verileri elde etmek için ilk değişken bölmek gerekirjQuery text-shadow variabile alma

var y = "-4px"; 
var x = "11px"; 
var blur = "8px"; 
color = "rgb(30, 43, 2)"; 

:

$("#element").click(function() { 
var text-shadow = $("#element").css("text-shadow") 
}); 

buna benzer bölünmüş almak mümkün olurdu.

Thanx

+0

Thanx işe yarıyor! – Mircea

cevap

9

sen arıyoruz.

var result = $('#element').css('text-shadow').match(/(-?\d+px)|(rgb\(.+\))/g) 
// result => ['rgb(30, 43, 2)', '-4px', '11px', '8px'] 
var color = result[0], 
    y = result[1], 
    x = result[2], 
    blur = result[3]; 

Bu

piksel ve rgb değerleri ile sayılar içine text-shadow dize değeri bölme bir dizi döndürür. Bu özel durumda size yardımcı olabilir, ancak muhtemelen o text-shadow

NOT tüm olası durumlar için çalışan taşıması için biraz daha üzerinde çalışmak gerekir:rgb(...) değeri dizideki ilk maç çünkü Firefox, Chrome, Safari ve Opera'nın onu nasıl atadığınızdan bağımsız olarak geri getirdiği yol budur. IE bunu farklı yapabilir.

+0

teşekkürler, bu da işe yarıyor! – Mircea

+0

Oldukça iyi bir çapraz tarayıcı çözümü, Firefox, Chrome ve Safari'de çalışıyor, IE'de test etme şansı olmadı, teşekkürler! – alchemication

1

Bariz şekilde olacaktır: ben tek tek CSS'den her değerini ayıklamak için bir yolu yoktur sanmıyorum yana

var properties = $('#element').css('text-shadow').split(" "); 

var y = properties[0]; 
var x = properties[1]; 
var blur = properties[3]; 
var color = properties[4] + " " + properties[5] + " " + properties[6]; 
+0

Özellik siparişi geri – Mottie

+0

işe yarıyor! Teşekkürler – Mircea

1

, en kolay yolu olacaktır yapmak bazı dize manipülasyonu yapın. döndürülen değer bu sırada olduğuna göre: renk, y, x, bulanıklık, bu komut ile bitirmek istiyorum: Sen değişkenlere jQuery css sonucu parçalanmasıdır normal ifadeyi kullanması gereken

var p = $('#element').css('text-shadow').split(' '); 
var color = p[0]+p[1]+p[2]; 
var y = p[3]; 
var x = p[4]; 
var blur = p[5]; 
+0

Verilen tüm çözümler işe yarıyor. Bu da işe yarıyor. Teşekkürler – Mircea

+0

Bu bir çapraz tarayıcı çözümü değil, Firefox'ta çalışıyor olsa da – alchemication