উত্তর:
.offset()
কোনও সরল অবজেক্ট হিসাবে কোনও উপাদানের অফসেট অবস্থান প্রদান করবে, যেমন:
var position = $(element).offset(); // position = { left: 42, top: 567 }
আপনি একই স্থানে অন্যান্য উপাদানগুলি অবস্থান রাখতে এই রিটার্ন মানটি ব্যবহার করতে পারেন:
$(anotherElement).css(position)
offset()
যথাযথ শীর্ষ স্থানাঙ্ক ফেরত দেয় না। এটি পরিবর্তে ডকুমেন্টের উপাদানটির শীর্ষ স্থানাঙ্কের চেয়ে প্রায় 300 পিক্সেল বেশি দেয়। কেন ??
মনে রাখবেন যে $(element).offset()
নথির সাথে সম্পর্কিত কোনও উপাদানের অবস্থান আপনাকে বলে । এটি বেশিরভাগ পরিস্থিতিতে দুর্দান্ত কাজ করে তবে আপনার ক্ষেত্রে position:fixed
অপ্রত্যাশিত ফলাফল পেতে পারে।
যদি আপনার দস্তাবেজটি ভিউপোর্টের চেয়ে দীর্ঘ হয় এবং আপনি নথির নীচের দিকে উল্লম্বভাবে স্ক্রোল করে থাকেন তবে আপনার স্ক্রলকৃত পরিমাণের দ্বারা আপনার position:fixed
উপাদানটির offset()
মান প্রত্যাশিত মানের চেয়ে বেশি হবে ।
আপনি যদি একটি মান খুঁজছেন অবস্থানের স্থির নথির চেয়ে ভিউপোর্ট (উইন্ডো) : স্থির উপাদান, আপনি স্থির উপাদানটির scrollTop()
মান থেকে নথির মান বিয়োগ করতে পারেন offset().top
। উদাহরণ:$("#el").offset().top - $(document).scrollTop()
যদি position:fixed
উপাদানটির অফসেট পিতামাতার নথি হয় তবে আপনি তার parseInt($.css('top'))
পরিবর্তে পড়তে চান ।
$(document).scrollTop()