JQuery .Ofset () এর সাথে অবস্থান পান এবং সেট করুন


106

কীভাবে jQuery .offsetপদ্ধতিতে কোনও উপাদানের অবস্থান পাবেন এবং সেট করবেন ?

ধরা যাক আমার একটি ডিভ আছে layer1এবং অন্য একটি আছে layer2। আমি কীভাবে পজিশন পেতে layer1এবং একই পজিশনে সেট করতে layer2পারি?


6
ডেনিস, আপনি কি jQuery ওয়েবসাইটে .offset () পদ্ধতিটি চেক করেছিলেন? এছাড়াও, আপনি নীচে স্টিভের উত্তর গ্রহণ করবেন না কেন ?!
রাফিদ

1
@ রফিদ সে মূলত আর ফিরে আসেনি
jcollum

6
আমি কি তার পয়েন্টগুলি রাখতে পারি?
ganders

উত্তর:


191
//Get
var p = $("#elementId");
var offset = p.offset();

//set
$("#secondElementId").offset({ top: offset.top, left: offset.left});

7
আপনি কেবলমাত্র পুরো offsetবস্তুটি পাস করতে পারেন , সুতরাং এটি //setহয়ে উঠবে: $("#secondElementId").offset(offset)
মেক্যাম্পবেলসপ

Hey! আমি ডিভের নীচে এবং ডানদিকে কীভাবে সেট করতে পারি? অফসেটে কোনও নীচে, সঠিক সম্পত্তি নেই
জেরিওয়েল

34

আমি অন্য বিকল্প সুপারিশ। jQuery UI এর একটি নতুন অবস্থান বৈশিষ্ট্য রয়েছে যা আপনাকে একে অপরের সাথে সম্পর্কিত উপাদানগুলিতে অবস্থান করতে দেয়। সম্পূর্ণ ডকুমেন্টেশন এবং ডেমো জন্য দেখুন: http://jqueryui.com/demos/position/#option-offset

অবস্থান বৈশিষ্ট্যটি ব্যবহার করে আপনার উপাদানগুলির অবস্থানের এক উপায় এখানে:

var options = {
    "my": "top left",
    "at": "top left",
    "of": ".layer1"
};
$(".layer2").position(options);

13
কোনও উত্তর ছাড়াই এই উত্তরটি দুইবার ভোট দেওয়া হয়েছিল। আপনি কেন আমার উত্তরটি ভোট দিলে দয়া করে বলুন। ধন্যবাদ!
কেএসভ

2
সম্ভবত এটি কারণ আপনি jQuery UI ব্যবহার করেন যখন ওপি কেবল jQuery জিজ্ঞাসা করে।
প্রাইম

7
প্রায়শই লোকেরা নিচে ভোট দিয়ে অনেক দূরে যান। ধরে নিই না যে আরও বিস্তৃত উত্তর অপরের কাছে অকেজো, এমনকি এটি অপের প্রসারিত হতে পারে। আমাকে 'বন্ধ করে দেওয়া শুরু করবেন না কারণ এটি যথাযথ প্রশ্ন নয়';)
অবতরণ করেছে

@ কেসিভ - আমি ভবিষ্যত থেকে এসেছি। jQuery এর এখনও কোনও সেটার নেই .position... দেখুন: api.jquery.com/position
কোশিনা

@ কোশিনা এটি jQuery "ইউআই" এর অংশ। উপরের লিঙ্কটি দেখুন বা jqueryui.com / অবস্থানের চেষ্টা করুন । এছাড়াও, আপনি যদি jQuery ব্যবহার করেন তবে আপনি কৌণিক জেএস 2.0 ব্যবহার করার বিষয়ে বিবেচনা করতে পারেন। তবে, আমি আশা করি আপনি উত্তরাধিকারের কোডটি বজায় রেখেছেন।
কেএসভ

16

এটি করণীয় তবে আপনাকে জানতে হবে যে ব্যবহারটি offset()নথির সাথে সম্পর্কিত উপাদানটির অবস্থান নির্ধারণ করে:

$('.layer1').offset( $('.layer2').offset() );

0

এখানে একটি বিকল্প। এটি কেবল এক্স স্থানাঙ্কের জন্য।

var div1Pos = $("#div1").offset();
var div1X = div1Pos.left;
$('#div2').css({left: div1X});

অফসেট ()। বাম এবং css.left একই জিনিস নয়, পৃষ্ঠার কাঠামোর উপর নির্ভর করে তাদের একই মান থাকতে পারে বা নাও থাকতে পারে।
কালে

আমি +1 করেছি। এটি আমার পক্ষে ঠিক কাজ করে বলে মনে হচ্ছে এবং এটি মূলত নীচের অপ্রচলিত উত্তরের মতো যা 85+ ভোট রয়েছে।
পল নেলসন বাকের

আমার জন্য কাজ করেছেন। অবদানের জন্য ধন্যবাদ!
এরলেন্ড কেএইচ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.