एक div इस इसे करने के लिए आवेदन किया है कहते हैं:एक div के 3 डी मान अनुवाद प्राप्त करें?
-webkit-transform: translate3d(0px, -200px, 0px)
मैं jQuery के साथ उन मूल्यों को कैसे पुनः प्राप्त कर सकता है?
एक div इस इसे करने के लिए आवेदन किया है कहते हैं:एक div के 3 डी मान अनुवाद प्राप्त करें?
-webkit-transform: translate3d(0px, -200px, 0px)
मैं jQuery के साथ उन मूल्यों को कैसे पुनः प्राप्त कर सकता है?
मूल्य को matrix
या matrix3d
के रूप में संग्रहीत किया जाता है, इस पर निर्भर करता है कि z मान सेट किया गया था या नहीं। 2 डी मैट्रिक्स, एक्स और वाई के लिए कोई अन्य परिवर्तन नहीं मानते हैं, पिछले दो मान हैं। 3 डी मैट्रिक्स के लिए, एक्स, वाई, जेड, 1 अंतिम चार अंक हैं। आप इस के लिए स्वीकार किए जाते हैं जवाब के मैच() पद्धति को बदलते हैं
function getTransform(el) {
var results = $(el).css('-webkit-transform').match(/matrix(?:(3d)\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))(?:, (\d+)), \d+\)|\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))\))/)
if(!results) return [0, 0, 0];
if(results[1] == '3d') return results.slice(2,5);
results.push(0);
return results.slice(5, 8);
}
संपादित करें: यह गलत है, इस पर ध्यान न दें।
मुझे लगता है कि अगर आप कुछ पसंद है ...
var styles = $('.myclass').css('-webkit-transform');
आप शायद translate3d(0px, -200px, 0px)
वापस मिल जाएगा।
शायद तुम तो उस स्ट्रिंग पार्स सकता है? हालांकि एक हैक की तरह लगता है।
नहीं, तुम एक मैट्रिक्स वापस इस तरह मिलेगा: 'मैट्रिक्स (-1, -0,00000000000000012246467991473532, 0,00000000000000012246467991473532, -1, 0, 0)' – ProblemsOfSumit
आह सही! uch! यही कारण है कि मैंने कहा * लगता है *, * शायद * और * शायद * :) – simonlchilds
यह ऋणात्मक संख्याओं के लिए समर्थन जोड़ता है:
आप मूल्यों को प्राप्त करने के लिए रेगुलर एक्सप्रेशन का उपयोग कर सकता है आप अगर
$(el).css('-webkit-transform').match(/matrix(?:(3d)\(-{0,1}\d+(?:, -{0,1}\d+)*(?:, (-{0,1}\d+))(?:, (-{0,1}\d+))(?:, (-{0,1}\d+)), -{0,1}\d+\)|\(-{0,1}\d+(?:, -{0,1}\d+)*(?:, (-{0,1}\d+))(?:, (-{0,1}\d+))\))/)
यह मेरे मामले में शून्य लौट रहा है –
निम्नलिखित अभिव्यक्ति को अद्यतन करें, जब आपके ट्रांसफॉर्म ने फ्लोट किया है तो उन अजीब मामलों के लिए समर्थन जोड़ता है:
/matrix(?:(3d)\(-{0,1}\d+\.?\d*(?:, -{0,1}\d+\.?\d*)*(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*)), -{0,1}\d+\.?\d*\)|\(-{0,1}\d+\.?\d*(?:, -{0,1}\d+\.?\d*)*(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*))\))/
क्या आपने ['jQuery.css'] (http://api.jquery.com/css) का उपयोग करने का प्रयास किया है? – namuol