যদি এমন একটি জিনিস থাকে যা লোকেরা সত্যিই স্ক্রলিং থেকে চায়, তবে এটি মসৃণ হওয়ার জন্য। ঐতিহাসিকভাবে Chrome-এর কিছু জায়গায় মসৃণ স্ক্রলিং হয়েছে, যেমন -- বলুন -- যখন ব্যবহারকারীরা তাদের ট্র্যাকপ্যাড দিয়ে স্ক্রল করে, বা মোবাইলে কোনো পৃষ্ঠা ফ্লাইং করে। কিন্তু যদি ব্যবহারকারীর কাছে একটি মাউস প্লাগ ইন থাকে তাহলে তারা একটি আরো জঘন্য "পদক্ষেপ" স্ক্রোলিং আচরণ পাবে, যা কম নান্দনিকভাবে আনন্দদায়ক। ক্রোম 49 এ সবই পরিবর্তন হতে চলেছে৷
অনেক ডেভেলপারের জন্য স্টেপড নেটিভ, ইনপুট-চালিত স্ক্রোল আচরণের সমাধান হল লাইব্রেরি ব্যবহার করা, যার লক্ষ্য হল এটিকে চোখের উপর মসৃণ এবং সুন্দর কিছুতে রিম্যাপ করা। ব্যবহারকারীরা এক্সটেনশনের মাধ্যমেও এটি করে। লাইব্রেরি এবং এক্সটেনশন উভয়েরই খারাপ দিক রয়েছে যা স্ক্রলিং পরিবর্তন করে, যদিও:
- এক অদ্ভুত উপত্যকার অনুভূতি। এটি দুটি উপায়ে নিজেকে প্রকাশ করে: প্রথমত, একটি সাইটে একটি মসৃণ স্ক্রোল আচরণ থাকতে পারে, কিন্তু অন্যটি নাও থাকতে পারে, তাই ব্যবহারকারী অসঙ্গতি দ্বারা বিভ্রান্ত বোধ করতে পারে৷ দ্বিতীয়ত, লাইব্রেরির মসৃণতা পদার্থবিদ্যা অগত্যা প্ল্যাটফর্মের সাথে মিলবে না। তাই যখন গতি মসৃণ হতে পারে এটি ভুল বা অস্বাভাবিক বোধ করতে পারে।
- প্রধান থ্রেড বিতর্ক এবং জ্যাংক জন্য প্রবণতা বৃদ্ধি. পৃষ্ঠায় যোগ করা যেকোনো জাভাস্ক্রিপ্টের মতো, একটি বর্ধিত CPU লোড থাকবে। এটি অগত্যা একটি বিপর্যয় নয়, পৃষ্ঠাটি অন্য কী করছে তার উপর নির্ভর করে, তবে যদি মূল থ্রেডে কিছু দীর্ঘ-চলমান কাজ থাকে এবং মূল থ্রেডের সাথে স্ক্রলিং করা হয়, তাহলে নেট ফলাফল তোতলানো স্ক্রল এবং জ্যাঙ্ক হতে পারে।
- বিকাশকারীদের জন্য আরও রক্ষণাবেক্ষণ, ব্যবহারকারীদের ডাউনলোড করার জন্য আরও কোড। মসৃণ স্ক্রোলিং করার জন্য একটি লাইব্রেরি থাকা এমন কিছু হতে চলেছে যা আপ-টু-ডেট রাখতে হবে এবং রক্ষণাবেক্ষণ করতে হবে এবং এটি সাইটের সামগ্রিক পৃষ্ঠার ওজনকে যোগ করবে।
এই ত্রুটিগুলি প্রায়শই অনেক লাইব্রেরির ক্ষেত্রেও সত্য যেগুলি স্ক্রোল আচরণের সাথে মোকাবিলা করে, তা প্যারালাক্স প্রভাব হোক বা অন্যান্য স্ক্রল-কাপল অ্যানিমেশন। এগুলি প্রায়শই জ্যাঙ্ক ট্রিগার করে, অ্যাক্সেসযোগ্যতার পথে চলে যায় এবং সাধারণত ব্যবহারকারীর অভিজ্ঞতার ক্ষতি করে। স্ক্রোলিং হল ওয়েবের একটি মূল মিথস্ক্রিয়া, এবং লাইব্রেরির সাথে এটিকে পরিবর্তন করা অত্যন্ত যত্ন সহকারে করা উচিত।
ক্রোম 49-এ, ডিফল্ট স্ক্রোল আচরণ উইন্ডোজ, লিনাক্স এবং ক্রোমওএস পরিবর্তন করা হবে। পুরানো, ধাপে ধাপে স্ক্রোলিং আচরণ চলে যাচ্ছে, এবং স্ক্রলিং ডিফল্টরূপে মসৃণ হবে! আপনার কোডে কোন পরিবর্তনের প্রয়োজন নেই, যদি আপনি সেগুলি ব্যবহার করে থাকেন তবে কোনো মসৃণ স্ক্রলিং লাইব্রেরি অপসারণ করা ছাড়া।
আরো স্ক্রোলিং গুডিজ
কাজের মধ্যে অন্যান্য স্ক্রোল-সম্পর্কিত গুডিও রয়েছে যা উল্লেখ করার মতো। আমরা অনেকেই স্ক্রোল-কাপলড ইফেক্ট চাই, যেমন প্যারালাক্সিং, মসৃণ স্ক্রোলিং ডকুমেন্ট ফ্র্যাগমেন্টে (যেমন example.com/ #somesection )। আমি আগে উল্লেখ করেছি, বর্তমানে যে পদ্ধতিগুলি ব্যবহার করা হয় তা প্রায়শই বিকাশকারী এবং ব্যবহারকারী উভয়ের জন্যই ক্ষতিকর হতে পারে। দুটি প্ল্যাটফর্ম স্ট্যান্ডার্ড রয়েছে যা সাহায্য করতে পারে: কম্পোজিটর ওয়ার্কলেটস এবং scroll-behavior
CSS সম্পত্তি।
হাউডিনি
কম্পোজিটর ওয়ার্কলেটগুলি Houdini- এর অংশ, এবং এখনও সম্পূর্ণরূপে নির্দিষ্ট করা এবং প্রয়োগ করা হয়নি৷ এটি বলেছে, প্যাচ ল্যান্ড হিসাবে , তারা আপনাকে জাভাস্ক্রিপ্ট লিখতে অনুমতি দেবে যা কম্পোজিটরের পাইপলাইনের অংশ হিসাবে চালিত হয়, যার সাধারণ অর্থ হল প্যারালাক্সিংয়ের মতো স্ক্রল-কাপলড প্রভাবগুলি বর্তমান স্ক্রোল অবস্থানের সাথে পুরোপুরি সিঙ্কে রাখা হবে। আজ যেভাবে স্ক্রলিং পরিচালনা করা হয়, সেখানে স্ক্রোল ইভেন্টগুলি শুধুমাত্র প্রধান থ্রেডে পাঠানো হয় (এবং অন্যান্য প্রধান থ্রেডের কাজ দ্বারা ব্লক করা যেতে পারে), এটি একটি বিশাল লাফের প্রতিনিধিত্ব করবে। আপনি যদি কম্পোজিটর ওয়ার্কলেটস, বা হাউডিনি নিয়ে আসা অন্য কোনো আকর্ষণীয় নতুন বৈশিষ্ট্যে আগ্রহী হন, তাহলে সুরমা-এর Houdini পোস্টের ভূমিকা দেখুন, Houdini স্পেক্স , এবং Houdini মেইলিং তালিকায় আপনার ভাবনাগুলিকে অবদান রাখুন!
স্ক্রল-আচরণ
যখন এটি খণ্ড-ভিত্তিক স্ক্রলিংয়ের ক্ষেত্রে আসে, scroll-behavior
CSS বৈশিষ্ট্য অন্য কিছু যা সাহায্য করতে পারে। আপনি যদি এটি ব্যবহার করে দেখতে চান তবে আপনি জেনে খুশি হবেন যে এটি ইতিমধ্যেই ফায়ারফক্সে পাঠানো হয়েছে, এবং আপনি "পরীক্ষামূলক ওয়েব প্ল্যাটফর্ম বৈশিষ্ট্যগুলি সক্ষম করুন" পতাকা ব্যবহার করে Chrome ক্যানারিতে এটি সক্ষম করতে পারেন৷ যদি আপনি সেট করেন -- বলুন -- <body>
উপাদানটি scroll-behavior: smooth
, সমস্ত স্ক্রল যেগুলি হয় টুকরো পরিবর্তনের দ্বারা বা window.scrollTo
দ্বারা ট্রিগার করা হয় মসৃণভাবে অ্যানিমেটেড হবে! একই জিনিস করার চেষ্টা করে এমন একটি লাইব্রেরি থেকে কোড ব্যবহার এবং বজায় রাখার চেয়ে এটি ভাল। স্ক্রোলিংয়ের মতো মৌলিক কিছুর সাথে, ব্যবহারকারীর প্রত্যাশা ভঙ্গ করা এড়াতে এটি সত্যিই গুরুত্বপূর্ণ, তাই এই বৈশিষ্ট্যগুলি প্রবাহিত থাকাকালীন এটি একটি প্রগতিশীল বর্ধিতকরণ পদ্ধতি অবলম্বন করা এবং এই আচরণগুলিকে পলিফিল করার চেষ্টা করে এমন কোনও লাইব্রেরি অপসারণ করা মূল্যবান।
এগিয়ে যান এবং স্ক্রোল
ক্রোম 49 হিসাবে, স্ক্রোলিং মসৃণ হচ্ছে। তবে এটিই সব নয়: smooth-scroll
মতো Houdini এবং CSS বৈশিষ্ট্যের মাধ্যমে আরও সম্ভাব্য উন্নতি হতে পারে। Chrome 49 ব্যবহার করে দেখুন, আপনি কী মনে করেন তা আমাদের জানান, এবং সর্বোপরি, ব্রাউজারকে আপনি যেখানে পারেন সেখানে স্ক্রোলিং করতে দিন!