यदि यह एक मैट्रिक्स द्वारा निर्दिष्ट किया गया था मुझे लगता है कि आप एक सरल तरीके से नहीं कर सकते हैं, लेकिन आप आसानी मूल्य पार्स कर सकते हैं:
var matrixRegex = /matrix\((-?\d*\.?\d+),\s*0,\s*0,\s*(-?\d*\.?\d+),\s*0,\s*0\)/,
matches = $(element).css('-webkit-transform').match(matrixRegex);
matches[1]
scaleX में शामिल होंगे और matches[2]
scaleY शामिल होंगे। यदि यह संभव है कि अन्य परिवर्तन भी लागू किए गए हैं, तो आपको रेगेक्स को थोड़ा सा ट्विक करना होगा, क्योंकि अब यह मानता है कि अन्य सभी पैरामीटर 0.
किसी भी ट्रांसफॉर्म को हटाने के लिए स्केल मान प्राप्त करने का एक तरीका हो सकता है , तत्व की गणना की चौड़ाई/ऊंचाई को मापें और फिर उन्हें वापस जोड़ें और फिर मापें। फिर नए/पुराने मूल्यों को विभाजित करें। कोशिश नहीं की है, लेकिन यह काम कर सकता है। jQuery स्वयं कई मापों के लिए एक समान दृष्टिकोण का उपयोग करता है, इसके लिए इसके लिए एक अनियंत्रित $.swap()
फ़ंक्शन भी है।
पीएस: आप -o-transform
-moz-transform
और -ms-transform
का भी उपयोग कर रहे हैं, है ना?
स्रोत
2011-04-09 09:40:12
+1 मुझे यह महसूस करने के लिए कि गेम मोमबत्ती के लायक नहीं है। पागल होने से पहले मुझे कुछ आसान करना है।^_^ – Robusto
यदि अन्य पैरामीटर 0 नहीं हैं, तो आप 'matrixRegex =/matrix \ (\ s * (-? \ D * \।? \ D *) का उपयोग कर सकते हैं, \ s * (-? \ D * \ ।?।? \ d * \ \ घ *), \ * (रों - - \ घ *), \ * (है?।? \ d * \ \ घ *), \ * (रों -? \ d * \।? \ d *), \ s * (-? \ d * \।? \ d *) \)/' – Massale