কোনও উপাদানটির স্ক্রোল বার রয়েছে কিনা তা যাচাই করার দ্রুততম উপায় কী?
একটি বিষয় অবশ্যই যাচাই করে দেখছে যে উপাদানটি তার ভিউপোর্টের চেয়ে বড় কিনা, যা সহজেই এই দুটি মান পরীক্ষা করে করা যেতে পারে:
el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth
তবে এর অর্থ এই নয় যে এটিতেও স্ক্রোলবার রয়েছে (যাতে এটি আসলে মানুষ দ্বারা স্ক্রোল করা যায়)।
প্রশ্ন
আমি কীভাবে কেবল 1 ক্রস ব্রাউজারে এবং 2 টি জাভাস্ক্রিপ্টে ( কোনও jQuery হিসাবে নেই ) উপায়ে স্ক্রোলবারগুলি কীভাবে পরীক্ষা করব ?
শুধুমাত্র জাভাস্ক্রিপ্ট, কারণ আমার যতটা সম্ভব ছোট ওভারহেড প্রয়োজন, কারণ আমি খুব দ্রুত jQuery নির্বাচক ফিল্টারটি লিখতে চাই
// check for specific scrollbars
$(":scrollable(x/y/both)")
// check for ANY scrollbar
$(":scrollable")
আমি মনে করি আমাকে overflowস্টাইল সেটিংস পরীক্ষা করতে হবে তবে আমি ক্রস ব্রাউজারে এটি কীভাবে করব?
অতিরিক্ত সম্পাদনা
কেবল overflowস্টাইল সেটিংসই নয়। কোনও উপাদানটির কোনও স্ক্রোলবার রয়েছে কিনা তা যাচাই করা ততটা তুচ্ছ নয়। উপরে আমি প্রথম সূত্রটি লিখেছি যখন উপাদানটির কোনও সীমানা না থাকে তবে এটি কার্যকর হয় (বিশেষত যখন সীমানা যথেষ্ট প্রস্থের হয়) তখন offsetমাত্রা scrollমাত্রার চেয়েও বড় হতে পারে তবে উপাদানটি এখনও স্ক্রোলযোগ্য হতে পারে। offsetউপাদানটির আসল স্ক্রোলযোগ্য ভিউপোর্ট পেতে আমাদের মাত্রা থেকে সীমানাগুলি বিয়োগ করতে হবে এবং এটি scrollমাত্রার সাথে তুলনা করতে হবে ।
ভবিষ্যতের রেফারেন্সের জন্য
:scrollablejQuery নির্বাচক ফিল্টার আমার .scrollintoview()jQuery প্লাগইন অন্তর্ভুক্ত করা হয়েছে । আমার ব্লগ পোস্টে কারও যদি প্রয়োজন হয় তবে সম্পূর্ণ কোডটি পাওয়া যাবে । যদিও এটি প্রকৃত সমাধান সরবরাহ করেনি সৌম্যের কোড আমাকে সমস্যা সমাধানে যথেষ্ট সহায়তা করেছিল। এটি আমাকে সঠিক দিকে নির্দেশ করেছিল।
overflow:hiddenসেট করা আছে? অতিরিক্ত সামগ্রী থাকতে হবে তবে এটি এখনও স্ক্রোলযোগ্য নয়। সমস্যাটি যতটা সহজ মনে হচ্ছে তত সহজ নয়।