Chrome 49 में स्मूद स्क्रोलिंग

लोग अगर स्क्रोल नहीं करना चाहते, तो वह चाहते हैं कि वह आसानी से दिखे. अब तक, Chrome में कुछ जगहों पर आसानी से स्क्रोल करने की सुविधा मिलती है. उदाहरण के लिए, जब उपयोगकर्ता अपने ट्रैकपैड पर स्क्रोल करते हैं या मोबाइल पर कोई पेज फ़्लॉप करते हैं. हालांकि, अगर किसी उपयोगकर्ता ने माउस को प्लग-इन किया है, तो उसे स्क्रोल करने पर “कई चरणों वाला” स्क्रोल करने का अनुभव मिलता है. इससे यह ज़्यादा आकर्षक नहीं लगता. Chrome 49 में बस इतना ही बदलाव होने वाला है.

कई डेवलपर को लाइब्रेरी की मदद से, स्टेप्ड नेटिव, इनपुट पर आधारित स्क्रोल करने की सुविधा का इस्तेमाल करना पड़ता है. इसके लिए, लाइब्रेरी का इस्तेमाल करके डेटा को इस तरह से मैप करना होता है कि यह साफ़ दिखने लगे और आंखों को अच्छा लगे. उपयोगकर्ता एक्सटेंशन के ज़रिए भी ऐसा करते हैं. लाइब्रेरी और एक्सटेंशन, दोनों के ऐसे नुकसान हैं जो स्क्रोलिंग को बदलते हैं. हालांकि:

  • अलौकिक घाटी का एहसास. यह दो तरीकों से सामने आता है: पहली साइट पर, हो सकता है कि किसी साइट पर स्क्रोल करना आसान हो, लेकिन दूसरी साइट पर ऐसा न हो. इस वजह से, साइट पर अलग-अलग चीज़ें न होने की वजह से उपयोगकर्ता को परेशानी हो सकती है. दूसरी बात, यह ज़रूरी नहीं है कि इस लाइब्रेरी में इस्तेमाल होने वाला कोई भी फ़िज़िक्स, प्लैटफ़ॉर्म पर मौजूद डिजिटल कॉन्टेंट से मेल खाए. इसलिए, भले ही गतिविधि एक जैसी हो, लेकिन यह गलत या असामान्य लग सकता है.
  • मुख्य थ्रेड के विवाद और जैंक के इस्तेमाल की संभावना बढ़ गई है. पेज में जोड़े गए किसी भी JavaScript की तरह ही, सीपीयू पर लोड बढ़ जाएगा. पेज और क्या कर रहा है, इस पर निर्भर करता है कि यह ज़रूरी नहीं है. हालांकि, अगर मुख्य थ्रेड पर कुछ समय से काम चल रहा है और स्क्रोलिंग को मुख्य थ्रेड से जोड़ दिया गया है, तो इससे स्क्रीन पर स्क्रोल करते समय ज़्यादा रुकावटें और जैंक हो सकते हैं.
  • डेवलपर के लिए ज़्यादा रखरखाव, उपयोगकर्ताओं के लिए ज़्यादा कोड डाउनलोड करने की सुविधा. आसानी से स्क्रोल करने के लिए लाइब्रेरी का होना ज़रूरी है. इसे अप-टू-डेट रखा जाएगा और उसका रखरखाव किया जाएगा. इससे साइट का पेज लोड बढ़ जाएगा.

ये कमियां अक्सर उन लाइब्रेरी में भी लागू होती हैं जो स्क्रोल करने की गतिविधियों का इस्तेमाल करती हैं, चाहे वे पैरलैक्स इफ़ेक्ट हों या स्क्रोल-कप किए गए दूसरे ऐनिमेशन. वे सभी अक्सर जैंक ट्रिगर करते हैं, सुलभता के रास्ते में रुकावट पैदा करते हैं, और आम तौर पर उपयोगकर्ता अनुभव को नुकसान पहुंचाते हैं. स्क्रोल करना, वेब का मुख्य इंटरैक्शन होता है. लाइब्रेरी के साथ इसमें बदलाव करते समय, सावधानी से काम करना चाहिए.

Chrome 49 में, स्क्रोल करने का डिफ़ॉल्ट तरीका Windows, Linux, और ChromeOS में बदल जाएगा. अब पुराना स्क्रोलिंग काम नहीं करेगा और स्क्रीन पर स्क्रोल करने की सुविधा डिफ़ॉल्ट रूप से आसान हो जाएगी! आपको अपने कोड में किसी भी तरह के बदलाव की ज़रूरत नहीं है. हालांकि, अगर आपने किसी लाइब्रेरी का इस्तेमाल किया है, तो उसे आसानी से स्क्रोल किया जा सकता है.

स्क्रोल करने वाले और गेम

इन कामों में स्क्रोल से जुड़ी ऐसी दूसरी दिलचस्प चीज़ें भी हैं जो बताने लायक हैं. हम में से कई लोग स्क्रोल के साथ जोड़े गए इफ़ेक्ट चाहते हैं. जैसे, पैरलैक्सिंग, किसी दस्तावेज़ के फ़्रैगमेंट (जैसे, example.com/#somesection) तक आसानी से स्क्रोल करना. जैसा कि मैंने पहले बताया, आज-कल अपनाए जा रहे तरीके, डेवलपर और उपयोगकर्ताओं, दोनों के लिए नुकसानदेह हो सकते हैं. प्लैटफ़ॉर्म के लिए दो स्टैंडर्ड काम किए जा रहे हैं. इन पर काम किया जा रहा है: कंपोज़िटर वर्कलेट और scroll-behavior सीएसएस प्रॉपर्टी.

हुडीनी

कंपोज़िटर वर्कलेट, Houdini का हिस्सा हैं. इनकी अभी तक पूरी जानकारी नहीं है और इन्हें लागू करना बाकी है. इसके साथ ही, पैच लैंड होने पर, आपको JavaScript लिखने की सुविधा मिलेगी. यह कंपोज़िटर की पाइपलाइन के हिस्से के तौर पर चलेगा. इसका मतलब है कि पैरलेक्सिंग जैसे स्क्रोल के साथ जोड़े गए इफ़ेक्ट, स्क्रोल की मौजूदा पोज़िशन के साथ पूरी तरह सिंक रहेंगे. मौजूदा समय में स्क्रोलिंग जिस तरह से हैंडल की जाती है, उसे देखते हुए जब स्क्रोल इवेंट समय-समय पर मुख्य थ्रेड पर भेजे जाते हैं (और इसे मुख्य थ्रेड के दूसरे काम से ब्लॉक किया जा सकता है), तो आने वाले समय में यह काफ़ी तेज़ी से आगे बढ़ सकता है. अगर आपको कंपोज़िटर वर्कलेट या एक अन्य शानदार सुविधा में दिलचस्पी है, जो हुडीनी के साथ काम करती है, तो सुरमा की हूडीनी पोस्ट के बारे में इंट्रो, Houdini की जानकारी देखें, और Houdini की ईमेल पाने वाले लोगों की सूची में अपने विचार रखें!

स्क्रोल करने का व्यवहार

फ़्रैगमेंट पर आधारित स्क्रोलिंग की बात करें, तो scroll-behavior सीएसएस प्रॉपर्टी कुछ और है. इससे आपको मदद मिल सकती है. अगर आपको इसे आज़माना है, तो आपको यह जानकर खुशी होगी कि यह Firefox में पहले ही शिप कर दिया गया है. साथ ही, “प्रयोग के तौर पर उपलब्ध वेब प्लैटफ़ॉर्म की सुविधाएं चालू करें” फ़्लैग का इस्तेमाल करके, इसे Chrome कैनरी में चालू किया जा सकता है. अगर <body> एलिमेंट को scroll-behavior: smooth पर सेट किया जाता है, तो फ़्रैगमेंट में बदलाव या window.scrollTo से ट्रिगर होने वाले सभी स्क्रोल आसानी से ऐनिमेटेड हो जाएंगे! यह किसी ऐसी लाइब्रेरी के कोड का इस्तेमाल करने और उसे बनाए रखने से बेहतर है जो भी यही काम करने की कोशिश करती है. स्क्रोलिंग जैसी बुनियादी चीज़ों को ध्यान में रखते हुए, यह बेहद ज़रूरी है कि उपयोगकर्ता की उम्मीदों को तोड़ने से बचें. हालांकि, जब ये सुविधाएं सभी तरह की हैं, तब भी आपको प्रोग्रेसिव बेहतर बनाने की प्रोसेस अपनानी होगी. साथ ही, ऐसी लाइब्रेरी को हटाना होगा जो इन गतिविधियों को बार-बार करने की कोशिश करती हैं.

आगे बढ़ें और स्क्रोल करें

Chrome के 49 वर्शन से, स्क्रोल करना आसान हो गया है. सिर्फ़ इतना ही नहीं: हुडीनी और smooth-scroll जैसी सीएसएस प्रॉपर्टी की मदद से, कुछ और सुधार किए जा सकते हैं. Chrome 49 को आज़माकर देखें, हमें अपने अनुभव के बारे में बताएं और सबसे ज़रूरी बात यह है कि ब्राउज़र को जहां हो सके वहां स्क्रोल करने दें!