⚡️ Limited Black Friday Deal
Get 50% off on the React Three Fiber Ultimate Course with the promo code ULTIMATE50
Buy Now
Fundamentals
Core
Master
Shaders
3D पोर्टफोलियो
रिस्पॉन्सिव
शायद आपको इस क्षण का डर था लेकिन अब समय आ गया है कि हम अपनी वेबसाइट को रिस्पॉन्सिव बनायें!
अब हमें जो कुछ भी हमने डेस्कटॉप संस्करण के लिए किया था, उसे मोबाइल के लिए फिर से बनाना है!
मज़ाक कर रहा हूँ 🤭, हम कुछ तकनीकों का उपयोग करेंगे ताकि हमारा 3D दृश्य मोबाइल पर अच्छा लगे।
मैं यह बताना चाहूँगा कि 3D दृश्य को रिस्पॉन्सिव बनाने के लिए एक सही समाधान नहीं है। यह कई कारकों पर निर्भर करता है:
- दृश्य की जटिलता
- तत्वों की संख्या
- प्रदर्शन
- आप क्या प्राप्त करना चाहते हैं
CSS भाग के लिए, हम मीडिया क्वेरीज़ के साथ अपनी वेबसाइट को आसानी से रिस्पॉन्सिव बनाएंगे।
useMobile
हम दो तकनीकों का उपयोग करेंगे ताकि हमारा 3D दृश्य रिस्पॉन्सिव बने:
- उपलब्ध चौड़ाई के आधार पर वस्तुओं की मूल स्थिति और पैमाना बदलना। एक निश्चित सीमा के बाद, हम मोबाइल संस्करण में बदल जाएंगे।
- वस्तुओं की स्थिति और पैमाना को
scaleFactor
के आधार पर ठीक करना। हमारा दृश्य एक1980px
स्क्रीन पर बिल्कुल सही लगता है लेकिन एक1600px
स्क्रीन पर क्या? हम एकscaleFactor
का उपयोग करेंगे ताकि विशेष स्थिति और पैमाना को समायोजित करें ताकि वही रूप और अनुभव बना रहे।
चलो एक useMobile
हुक बनाते हैं एक src/hooks
फ़ोल्डर में जो दोनों तकनीकों को संभालेगा:
import { useState } from "react"; const REFERENCE_WIDTH = 1920; const MOBILE_THRESHOLD = 990; export const useMobile = () => { const [scaleFactor, setScaleFactor] = useState( window.innerWidth / REFERENCE_WIDTH ); const [isMobile, setIsMobile] = useState( window.innerWidth <= MOBILE_THRESHOLD ); return { scaleFactor, isMobile, }; };
हम useState
हुक का उपयोग कर रहे हैं ताकि scaleFactor
और isMobile
मानों को स्टोर किया जा सके। जब ये मान बदलते हैं तो यह रीरेंडर को मजबूर करेगा।
हम दो स्थिरांक प्रयोग करते हैं ताकि परफेक्ट चौड़ाई को परिभाषित किया जा सके जिसका उपयोग हमने अपनी वस्तुओं के लिए किया और मोबाइल सीमा (जब हम मोबाइल संस्करण में स्विच करते हैं)।
मैंने इन variables
के लिए config
का उपयोग नहीं करने का चयन किया ताकि ये हुक अन्य प्रोजेक्ट्स में पुनः उपयोगी हो सके।
End of lesson preview
To get access to the entire lesson, you need to purchase the course.