मेरे पास एकमात्र समाधान है ($ (this) .innerHeight () - $ (this)। हाइट ()) / 2
लेकिन / 2 सही विकल्प नहीं है, क्योंकि उपयोगकर्ता में पैडिंग-टॉप हो सकता है: 0 पिक्सेल और पैडिंग-नीचे: 20px।
क्या कोई अधिक सटीक पैडिंग मान बनाने का तरीका?
मैं सीएसएस ('पैडिंग-टॉप') के बारे में सोच रहा था और उसके बाद केवल पार्स करके ही पार्स करता हूं, लेकिन मान में हो सकता है उदाहरण के लिए "एम" और नहीं "पीएक्स" में
फिर प्रत्येक मूल्य प्रकार के लिए स्विच स्टेटमेंट करें? एक के लिए, पीएक्स दूसरे के लिए?
यह सब कुछ जटिल है और कोड में अधिक जगह लेता है ...
jQuery की मुख्य शक्तियों में से एक यह है कि यह बहुत आसान है, इसलिए यदि आपके पास एक आवश्यकता है जिसे पुस्तकालय द्वारा तुरंत संतुष्ट नहीं किया गया है, तो खोज करने के लिए प्लगइन्स का विशाल परिदृश्य है। और अगर कोई नहीं जो आप चाहते हैं, तो यह अपने आप को रोल करना बहुत आसान है।
मुझे लगता है कि यहां जाने का सही तरीका है, अगर आपको कोई प्लगिन नहीं मिल सकता है, जो आप चाहते हैं, तो वह अंतिम है: अपना खुद का लिखना
हालांकि, सुनिश्चित करें कि आप अपने प्लगइन के ऐनक पर खुद के साथ स्पष्ट हैं। अगर तत्व में पैडिंग के लिए कोई सीएसएस सेटिंग नहीं है तो उसे क्या वापस करना चाहिए? क्या यह इस तत्व, या गणना शैली पर स्टाइल वापस कर सकता है? अमान्य सीएसएस के लिए क्या होता है ('पैडिंग-टॉप: 10 यूनिट्सटैटदॉंटएक्सिस्ट;' या 'पैडिंग-बाएं: दो;')?
ऐसा करने के लिए - यह आपके अपने प्लगइन का उपयोग करके आपके कोड में दिख सकता है:
<पूर्व> var topPadding = $ ('# एलेमेंट')। पैडिंग ('शीर्ष'); इसे उपलब्ध कराने के लिए, बस इस तरह एक प्लगइन लिखें:
$। Fn.padding (दिशा) {// आप की जरूरत के मूल्यों की गणना, एक स्विच कथन // या कुछ अन्य चतुर समाधान का प्रयोग करके आप समझ सकते हैं // अब इसमें तत्व के साथ एक लिपटे सेट है जिसमें आप // समारोह लागू करते हैं, और दिशा चार स्ट्रिंग्स में से एक 'शीर्ष', '/' सही ',' बाएं 'या' नीचे '/ / इसका मतलब है कि आप शायद कुछ (छद्म कोड) कर सकते हैं: var intPart = this.css (' पैडिंग- '+ दिशा) .getIntegerPart (); Var इकाई = this.css ('पैडिंग-' + दिशा) .getUnit (); स्विच (यूनिट) {केस 'पीएक्स': रिटर्न इंटपार्ट; मामले 'em': वापसी ConvertEmToPx (intPart) डिफ़ॉल्ट: // जो कुछ भी आप के रूप में डिफ़ॉल्ट कार्रवाई के बारे में अच्छा लग रहा है // बस सुनिश्चित करें कि आप प्रत्येक कोड पथ पर एक मान वापस करते हैं}};
Comments
Post a Comment