2015-02-03 4 views
13

मैं जावास्क्रिप्ट में px से vw को परिवर्तित करना चाहता हूं, मैं इसे कैसे कर सकता हूं?मैं जावास्क्रिप्ट में पीएक्स को vw में कैसे परिवर्तित कर सकता हूं?

मैं इसे ढूंढ रहा हूं, लेकिन मुझे कुछ भी नहीं मिला है।

तो,

1px →? vw

धन्यवाद।

+1

- यदि आप गतिशील रूप से व्यूपोर्ट चौड़ाई को पीएक्स को vw में परिवर्तित करने के लिए प्राप्त करते हैं, तो तत्व का आकार नहीं बदलेगा। तो आप क्या हासिल करना चाहते हैं? – errand

+0

[बस जेएस में अपनी स्क्रीन की चौड़ाई प्राप्त करें] (http://tripleodeon.com/2011/12/first-understand-your- स्क्रीन) उन्होंने कहा। gl; एचएफ – FelipeAls

उत्तर

30

1px = (100vw/[document.documentElement.clientWidth] पिक्सल)

उदा — यदि आपका व्यूपोर्ट 500px चौड़ा था (100vw को परिभाषा के द्वारा बराबर होती है) तो

1px = (100vw/500px) = 0.2vw

मैं गणना

+0

धन्यवाद, मैंने इसे आपके समाधान – Kappys

+0

के साथ हल किया है आपका स्वागत है। – fcalderan

+0

ध्यान दें कि .clientWidth एक प्रॉपर्टी है, एक विधि नहीं। – enguerranws

2

रूप से exclude any scrollbar को .clientWidth इस्तेमाल किया 1vw/1vh व्यूपोर्ट चौड़ाई/ऊंचाई का 1/100 वां दर्शाता है, आप इसे कुछ प्राप्त कर सकते हैं जैसे:

var newWidth = yourElement.outerwidth/document.documentElement.clientWidth *100; 
yourElement.style.width = newWidth +'vw'; 

मैंने साफ संख्या प्राप्त करने के लिए Math.round() का उपयोग करने के बारे में सोचा था, लेकिन यदि आप दशमलव को बहिष्कृत करते हैं तो आपको निश्चित रूप से गलत आयाम मिलेंगे।

क्या आप इस मान को सीएसएस में सीधे नहीं बदल सकते हैं (उदाहरण के लिए किसी अन्य स्टाइलशीट के साथ)? यह जावास्क्रिप्ट के माध्यम से इसे परिवर्तित करने के लिए वास्तव में गंदा लगता है।

इसके अलावा, एर्रेंड की टिप्पणी के अनुसार, यदि आप बस अपने पीएक्स को vw/vh में परिवर्तित करते हैं, तो यह आपके वर्तमान HTML/CSS को स्क्रीन पर जादुई रूप से फिट नहीं करेगा। दिए गए समाधानों के अनुसार

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

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