2012-08-24 12 views
13

मैं x पिक्सेल द्वारा तत्व की स्थिति में वृद्धि करने की कोशिश कर रहा हूं। यहाँ मैं अब तक की कोशिश की है है:शीर्ष/बाएं/नीचे/दाएं मानों को बढ़ाने के लिए जावास्क्रिप्ट का उपयोग

var top = document.getElementById("something").style.top; 
top = top + "300px" 

मुझे पता है कि यह काम करने के लिए नहीं जा रहा है, लेकिन अगर यह संभव हो गया था इस तरह की स्थिति मूल्य बढ़ाने के लिए मैं सोच रहा था।

+2

ऐसा क्यों downvoted किया गया था? यह एक बिल्कुल वैध सवाल है। – Brad

उत्तर

11

क्योंकि style.top"300px" जैसे अंत में इकाइयों के साथ एक स्ट्रिंग है, आप केवल इसके साथ गणित कर सकते हैं जब आप केवल संख्यात्मक भाग को वास्तविक संख्या में परिवर्तित करते हैं।

मान लें कि आप एक तैनात तत्व (ताकि top मान सेट कुछ करना होगा) है और आप पहले से ही एक top शैली तत्व पर सीधे सेट और सीएसएस के माध्यम से सेट नहीं है (इसलिए हो रही obj.style.top वास्तव में आप कुछ मिल जाएगा), आप कर सकते हैं

var obj = document.getElementById("something"); 
var topVal = parseInt(obj.style.top, 10); 
obj.style.top = (topVal + 300) + "px"; 

कार्य उदाहरण: इस तरह शैली मूल्य से बाहर नंबर पार्स करने से यह कर http://jsfiddle.net/jfriend00/pt46X/

+0

मैंने एक छोटा कोड टाइप किया है: http://jsfiddle.net/wLf35/ हालांकि मुझे यहां त्रुटि नहीं मिल रही है। – day0

+1

@ day0 - जैसा कि मैंने अपने उत्तर में कहा था, 'obj.style.top' सीएसएस में एक मूल्य सेट पुनर्प्राप्त नहीं करेगा। यदि आपकी शैली सीएसएस के माध्यम से सेट की गई है तो आपको 'window.getComputedStyle()' का क्रॉस-ब्राउज़र संस्करण उपयोग करने की आवश्यकता होगी। 'obj.style.top' केवल ऑब्जेक्ट पर सेट स्टाइल मानों को पुनर्प्राप्त करता है (सीएसएस के माध्यम से नहीं)। जेएसफ़िल्ड में, आपको कोड को सिर या शरीर के रूप में भी सेट करना होगा ताकि आपके कार्य वैश्विक दायरे में हों और जिस तरह से आप उन्हें कॉल कर रहे हों, पहुंच सकें। यहां देखें: http://jsfiddle.net/jfriend00/CG68f/ – jfriend00

+0

आह यह बहुत अच्छा है! आपका बहुत बहुत धन्यवाद। मैं '.getComputedStyle()' कहीं भी नहीं आया था। एक बार फिर धन्यवाद! – day0

2

यह ठीक से काम नहीं चलेगा, क्योंकि उदाहरण के लिए, यदि top200px के एक मूल्य था, यह होगा बनना "200px300px"। इस प्रयास करें:

var elem = document.getElementById("something"); 
elem.style.top = parseInt(elem.style.top, 10) + 300 + "px" 

Demo WEEEE!!!!

+0

इसे बंद करो !!! – BNL

संबंधित मुद्दे

 संबंधित मुद्दे