ایچ ٹی ایم ایل، سی ایس ایس، اور کم سے کم جاوا اسکرپٹ کا استعمال کرتے ہوئے قابل رسائی ماڈلز اور پاپ اپ کیسے بنائیں

اپنی سائٹ پر پاپ اپ اور ماڈل بنانا ایک پیچیدہ عمل ہوسکتا ہے۔ اور اسے شروع کرنے کے لیے اکثر بوائلر پلیٹ کوڈ کی ضرورت ہوتی ہے۔

لیکن اصل مسئلہ تب آتا ہے جب آپ اس موڈل یا پاپ اپ کو قابل رسائی بنانا چاہتے ہیں۔

آج میں آپ کو اس کے استعمال کا طریقہ بتاؤں گا۔

ایچ ٹی ایم ایل، سی ایس ایس، اور جاوا اسکرپٹ کا استعمال کرتے ہوئے کم سے کم سیٹ اپ کے ساتھ قابل رسائی ماڈلز/پاپ اپ بنائیں۔

شرطیں

شروع کرنے سے پہلے، یہ چند بنیادی باتوں سے واقف ہونے میں مدد کرتا ہے:

  • سی ایس ایس کی بنیادی باتیں: آپ کو CSS کی عام اصطلاحات اور تصورات (سلیکٹرز، پراپرٹیز، پوزیشننگ وغیرہ) سے واقف ہونا چاہیے۔

  • HTML ڈھانچہ: مثالوں کی پیروی کرنا آسان ہو جائے گا اگر آپ کو کام کرنے کا علم ہے کہ DOM میں عناصر کو کس طرح منظم کیا جاتا ہے۔

  • JavaScript DOM بنیادی باتیں: اگرچہ یہ گائیڈ صرف کم سے کم JavaScript کا استعمال کرتا ہے، یہ سمجھنا کہ DOM عناصر کو کس طرح استفسار کرنا ہے اور اس میں ہیرا پھیری کرنا آپ کو تجربہ کرتے وقت زیادہ اعتماد دے گا۔

بس آپ کی ضرورت ہے۔ کوئی فریم ورک نہیں، کوئی بھاری بوائلر پلیٹ نہیں۔ یہ صرف بنیادی ویب ٹیکنالوجیز کی بنیاد ہے۔

انڈیکس

پاپ اپ بنانے کا طریقہ popover

HTML، CSS اور JavaScript کا استعمال کرتے ہوئے شروع سے پاپ اپ بنانا کافی مشکل ہو سکتا ہے۔ ایک پاپ اپ ایک چھوٹا ڈائیلاگ باکس ہے جو اسکرین پر ظاہر ہوتا ہے تاکہ اضافی معلومات یا ان پٹ کی درخواست کی جا سکے۔ چونکہ انہیں عارضی طور پر ڈیزائن کیا گیا ہے، صارفین توقع کرتے ہیں کہ وہ تعامل کے بعد غائب ہو جائیں گے، جیسے کہ Esc دبانے یا باہر کلک کرنے سے۔

HTML استعمال کریں۔ popover اور popovertarget پراپرٹیز آپ کو کئی بلٹ ان ایکسیسبیلٹی اور تعامل کے رویے رکھنے کی اجازت دیتی ہیں، جیسے کہ فرار سے بند اور ہلکا پھلکا برخاست، لیکن پھر بھی آپ کو صحیح معنوی عناصر کو منتخب کرنے اور کی بورڈ اور اسکرین ریڈر کے رویے کی جانچ کرنے کی ضرورت ہے۔

HTML کے ساتھ ایک پاپ اپ ترتیب دینا

آئیے عملی بنیں اور کچھ عام مثالیں بنائیں اور ویب پیج پاپ اپس کے لیے کیسز استعمال کریں۔ آئیے ایک نیویگیشن عنصر بناتے ہیں جو ظاہر ہوتا ہے جب صارف ہیمبرگر مینو یا مینو لسٹ پر کلک کرتا ہے۔

پہلے popover پاپ اپ کنٹینر کی خصوصیات۔ یہ ایچ ٹی ایم ایل کو کہتا ہے کہ وہ موجود بلاک کو پاپ اپ سمجھے اور اسے بطور ڈیفالٹ اسکرین سے چھپائے۔

پھر popovertarget پوپ اپ کو متحرک کرنے والے عنصر پر پراپرٹی کا استعمال کرتے ہوئے چھپے ہوئے عنصر کو چھپائیں (جیسے بٹن عنصر یا کوئی دوسرا عنصر)۔ popover.

ہاں:




مندرجہ بالا ترتیبات کے نتیجے میں مفید بلٹ ان تعامل کے رویوں کے ساتھ ایک پاپ اپ ہوگا، بشمول فرار سے بند اور ہلکی برخاستگی۔ آپ بٹن دبا کر اسے اسکرین سے چھپا سکتے ہیں۔ ESC جب آپ اپنے کی بورڈ پر کوئی کلید دباتے ہیں یا صفحہ پر کہیں اور کلک کرتے ہیں (سوائے ایک پاپ اپ سیکشن کے)

یاد رکھیں۔ popover اکیلے اوصاف خود بخود پاپ اپ کو ناقابل رسائی بنا دیتے ہیں۔ آپ کو اب بھی مناسب الفاظ استعمال کرنے کی ضرورت ہے، جب ضروری ہو تو قابل رسائی لیبل فراہم کریں، اور کی بورڈ اور اسکرین ریڈر کے رویے کی جانچ کریں۔

پاپ اپ کو کیسے ترتیب دیا جائے۔

اب آپ پاپ اپ کو ترتیب دے سکتے ہیں اور اسے جہاں چاہیں رکھ سکتے ہیں۔ پہلے سے طے شدہ طور پر، مندرجہ ذیل میں سے ایک کا استعمال کرتے ہوئے ایک پاپ اپ (یا موڈل) بنایا گیا: popover پراپرٹی یا ڈائیلاگ ٹیگ صفحہ پر مرکوز ہے۔

اس کی وجہ یہ ہے کہ بنیادی عناصر ہیں: popover کی حیثیت رکھتا ہے۔ fixed اور inset 0، پاپ اپ باکس کو بیچ میں رکھیں اور مارجن کو سیٹ کریں۔ auto.

میمو: inset صفحہ پر کسی عنصر کی پوزیشن کے اوپر، نیچے، بائیں اور دائیں کے لیے مخففات۔ ایک عنصر کے تمام اطراف میں ایک ہی سائز کا اطلاق کرنے کے لیے انسیٹ کا استعمال کریں۔

اگر آپ نہیں چاہتے ہیں کہ پاپ اپ کو مرکز میں رکھا جائے، تو آپ عنصر کو اس طرح ترتیب دے کر شروع کر سکتے ہیں: popover صفحہ کے بہاؤ سے الگ کرنے کے لیے پوزیشن کو مطلق پر سیٹ کریں۔

#navbar-menu {
  position: absolute;
}

اس کے بعد آپ مارجن کو 0 پر غیر فعال کر سکتے ہیں اور پوزیشن (انسریشن) کو غیر فعال کر سکتے ہیں۔ unset:

#navbar-menu {
  position: absolute;
  margin: 0;
  inset: unset;
}

اس کے بعد آپ پاپ اوور عنصر کو صفحہ کے کسی بھی طرف اپنی مرضی کے مطابق رکھ سکتے ہیں۔

استعمال کرنے کا طریقہ position-anchor جائیداد

میمو: سی ایس ایس اینکر پوزیشننگ ایک نئی خصوصیت ہے۔ براہ کرم پروڈکشن میں استعمال کرنے سے پہلے براؤزر سپورٹ چیک کریں اور ان براؤزرز کے لیے فال بیک فراہم کریں جو ابھی تک اس کی حمایت نہیں کرتے ہیں۔

اگلا مرحلہ عنصر کو اس عنصر کے قریب رکھنا ہے جو اسے متحرک کرتا ہے۔ اس کے لیے ہم position-anchor سی ایس ایس کی خصوصیات۔

کہ position-anchor سی ایس ایس میں پراپرٹیز پہلے سے طے شدہ اینکر عنصر کی وضاحت کرتی ہیں جس میں بالکل یا فکسڈ پوزیشن والے عناصر کو "ٹیچر” یا اسنیپ کیا جاتا ہے۔ صرف CSS کا استعمال کرتے ہوئے، آپ صفحہ پر ایک اور عنصر کے ساتھ تیرتا ہوا ہدف (جیسے یہاں پاپ اپ) منسلک کر سکتے ہیں۔

اس مثال میں مینو لسٹ آئیکن یا ہیمبرگر مینو ہے جو نیویگیشن عنصر کو پاپ اپ اور بند کر دیتا ہے۔ ہم نیویگیشن بار مینو کو مینو لسٹ کے ساتھ/قریب منسلک کرنا چاہتے ہیں جو مینو لسٹ کھولتی ہے۔

تو آپ شامل کر سکتے ہیں: anchor-name مینو آئیکن میں خصوصیات شامل کریں۔ نام سے پہلے ڈبل ڈیش ہونا ضروری ہے (آپ اسے جو چاہیں نام دے سکتے ہیں)۔

#nav-btn {
  anchor-name: --nav;
}

کہ position-anchor اوصاف آپ کو کسی عنصر کو اس کے اینکر کے نام سے شناخت کرنے والے دوسرے عنصر سے جوڑنے کی اجازت دیتے ہیں۔ ایک بار طے ہونے کے بعد، آپ استعمال کر سکتے ہیں: anchor() لنگر سے متعلق عناصر کو پوزیشن میں رکھنے کی صلاحیت، جیسے لنگر کے اوپر، نیچے یا مرکز میں سیدھ میں لانا۔

#navbar-menu {
  position: absolute;
  margin: 0;
  inset: auto;
  position-anchor: --nav;
  top: anchor(bottom);
  right: anchor(right);
}

آپ کے فراہم کردہ اینکر کے نام کو قدر کے طور پر پاس کرتا ہے۔ position-anchor نیویگیشن عناصر کو سیدھ میں لانے کے لیے (#navbar-menu اس مثال میں) anchor-name کی nav یہ ہے #nav-btn ہماری مثال میں۔

پھر anchor()نیویگیشن عنصر کے اوپری حصے کو نیچے اور دائیں جانب مینو کے دائیں جانب رکھیں۔

کا استعمال کرتے ہوئے ایک موڈل بنانے کا طریقہ dialog ٹیگ

استعمال کرتے ہوئے command اور commandfor آپ بٹن کی خصوصیات کو اعلانیہ طور پر کنٹرول کر سکتے ہیں۔

. مثال کے طور پر، command="show-modal" جب ایک ماڈل کے طور پر کھولا جاتا ہے، command="close" اسے بند کرو۔

پاپ اپ موڈل اور پاپ اپ مختلف ہیں۔ پاپ اپ آپ کو صفحہ کے ساتھ بات چیت جاری رکھنے کی اجازت دیتے ہیں جب تک کہ پاپ اپ فعال ہو۔ تاہم، موڈل یا پاپ اپ موڈل کا استعمال آپ کو صفحہ کے ساتھ تعامل کرنے کی اجازت نہیں دے گا۔ ایک موڈل اسکرین کو اس وقت تک لاک کرتا ہے جب تک کہ اسے نظر انداز یا تسلیم نہ کیا جائے۔

جب

جب موڈیلی طور پر کھولا جاتا ہے، تو اسے براؤزر کی اوپری تہہ پر رکھا جاتا ہے، جو صفحہ کے باقی مواد کے اوپر ظاہر ہوتا ہے۔ دستاویز کا بقیہ حصہ غیر فعال ہو جاتا ہے۔ اس کا مطلب یہ ہے کہ موڈل کھلے ہونے کے دوران صارف دستاویز کے ساتھ بات چیت نہیں کر سکتا۔ براؤزر بھی ::backdrop یہ ایک موڈل کے پیچھے بیٹھا ہے جسے بصری اوورلے فراہم کرنے کے لیے اسٹائل کیا جا سکتا ہے۔

مثالوں میں شامل ہیں:



 
    
    

آپ استعمال کر سکتے ہیں command وہ خصوصیات جو موڈل کو بند کرتی ہیں اور دکھاتی ہیں۔ commandfor ایک ایسی پراپرٹی جو موڈل کی ID کا استعمال کرتے ہوئے ہدف بنائے جانے والے ماڈل کا حوالہ دیتی ہے۔

کہ command جائیداد درج ذیل اختیارات میں سے ایک حاصل کر سکتی ہے:

  • show-modal: یہ اختیار ان عناصر کے لیے استعمال ہوتا ہے جو موڈل کو متحرک کرتے ہیں یا ڈائیلاگ باکس جو اسے کھولتا ہے۔

  • close: یہ آپشن عنصر کو دیا جاتا ہے اور اگر یہ کھلا ہے تو موڈل کو بند کر دے گا۔

مثال کے کوڈ کے ٹکڑوں میں، آپ لیبل کے ساتھ ایک بٹن دیکھ سکتے ہیں۔ open modal ہے command اختیارات کے ساتھ خصوصیات ماڈل دکھائیں اور commandfor وہ پراپرٹی جو ID کے ذریعہ ڈائیلاگ عنصر کو نشانہ بناتی ہے۔

بند موڈل بٹن ہے بند اختیارات میں command کلک کرنے پر یہ پراپرٹی موڈل کو بند کر دیتی ہے۔ یہ بھی استعمال کرتا ہے۔ commandfor یہ بتاتا ہے کہ بند بٹن پر کلک کرنے پر کون سا موڈل بند ہونا چاہیے۔

ذیل میں آپ کو ایک ماڈل کا ڈیمو ملے گا جس کا استعمال کرتے ہوئے بنایا گیا ہے: command اور commandfor وصف:

"ایک موڈل کو پاپ اپ کرنے کے لیے کلک کریں!” پر کلک کرنے کی کوشش کریں! جب آپ اوپر کوڈپین میں بٹن دبائیں گے تو آپ کو ایک موڈل نظر آئے گا جسے استعمال کرکے بنایا جا سکتا ہے: command اور commandfor کی خصوصیات dialog ٹیگ

کا استعمال کرتے ہوئے ایک ماڈل بنائیں showModal()

کمانڈ API پرانے براؤزرز میں تعاون یافتہ نہیں ہوسکتا ہے۔ متبادل طور پر، آپ JavaScript استعمال کر سکتے ہیں۔ showModal() دوسرے طریقوں کے مقابلے میں، یہ بہت سے براؤزرز میں وسیع پیمانے پر دستیاب ہے۔ command اور commandfor.

const btn = document.querySelector("button");
const dialog = document.querySelector("dialog");

btn.addEventListener("click", () => {
  dialog.showModal();
});

غیر موڈل ڈائیلاگ کو کیسے کھولیں۔ show()

بعض اوقات آپ کو موڈل جیسا عنصر چاہیے جو انٹرایکٹو رہے اور صفحہ کے دوسرے مواد کو مسدود نہ کرے، جیسے: command اور commandfor خواص ایسے ہیں۔ اس کے لیے آپ استعمال کر سکتے ہیں: show() جاوا اسکرپٹ کا استعمال کرتے ہوئے ڈائیلاگ میں۔

const btn = document.querySelector("button");
const dialog = document.querySelector("dialog");

btn.addEventListener("click", () => {
  dialog.show();
});

اوپر کا ٹکڑا ڈائیلاگ باکس کے کھلے ہونے کے دوران باقی صفحہ کو انٹرایکٹو رکھتا ہے۔ یہ استعمال کرتے ہوئے ڈائیلاگ کھولنے سے مختلف ہے: showModal() یا استعمال کریں command="show-modal"ڈائیلاگ باکس کو موڈیلی طور پر کھولتا ہے اور باقی دستاویز کو غیر فعال کر دیتا ہے۔

میمو: ذہن میں رکھیں show() اگرچہ اسے موڈل نہیں سمجھا جاتا ہے، لیکن یہ ایک ڈائیلاگ جیسا عنصر ہے جو باقی صفحے کے ساتھ تعامل کو نہیں روکتا ہے۔

نوٹ کرنے کی چیزیں

عناصر کا استعمال کب کرنا ہے۔ popover، command اور commandfor وصف یا show() اس طریقہ کار کے ساتھ کچھ "مسائل” ہیں جن سے آگاہ ہونا ضروری ہے۔ ان چیزوں پر توجہ دینے سے آپ کو بہترین طریقوں پر قائم رہنے میں مدد ملے گی۔

فلیکس یا گرڈ استعمال نہ کریں۔

کسی بھی عنصر کے لیے براہ راست ترتیب سے متعلقہ اسٹائل جیسے فلیکس یا گرڈ کو لاگو کرنے کی سفارش نہیں کی جاتی ہے۔ popover اور ماڈل عناصر۔

بنیادی طور پر عنصر ہے popover پیدا کرنا، command اور commandfor بٹن کی خصوصیات اور show() نمائش ~ none. اس کا بنیادی مطلب یہ ہے کہ پاپ اپ یا موڈل اسکرین سے پوشیدہ ہے۔

شامل کرتے وقت flex یا grid براہ راست عنصر پر popover موڈل کو کسی وصف یا موڈل عنصر سے دوبارہ بنائیں، یا popover کسی عنصر کا پہلے سے طے شدہ برتاؤ ہمیشہ اسکرین پر نظر آنا ہے۔ اس کا مطلب ہے کہ آپ موڈل کو سکرین سے نہیں چھپا سکتے۔

CodePen ڈیمو میں ذیل کی مثال دیکھیں:

#navbar-menu {
  display: grid;
/* other styles definition*/
}

آپ مثال میں دیکھ سکتے ہیں کہ نیوی عنصر ہمیشہ نظر آتا ہے چاہے آپ اسے دوبارہ چھپانے کے لیے مینو بٹن پر کلک کریں۔

مجوزہ نقطہ نظر

اس صورت حال میں، آپ مندرجہ ذیل میں سے ایک استعمال کر سکتے ہیں: popover-open انتساب کے عنصر کے لیے سیوڈو کلاس popover یا وصف استعمال کریں۔ dialog[open] ڈائیلاگ عنصر پر۔

صفحہ کے ساتھ تعامل کرتے وقت ان کی حالت کی بنیاد پر سیوڈو کلاسز اسٹائل عناصر۔ تو اس صورت میں ہم پاپ اپ یا موڈل کو ایک مختلف لے آؤٹ فراہم کرنا چاہتے ہیں جو کھلی حالت میں ہے۔

ہاں:

/* element with a popover*/
#navbar-menu:popover-open {
  display: grid;
  gap: 2rem;
}

/* using a dialog element*/
dialog[open] {
  display: grid;
  gap: 2rem;
}

پس منظر کا طومار

استعمال کرتے وقت ایک اور چیز پر غور کرنا چاہئے۔

عنصر ایک پس منظر کا اسکرول ہے۔ براؤزر اور پلیٹ فارم پر منحصر ہے، موڈل ڈائیلاگ کھلے ہونے کے باوجود بھی مرکزی صفحہ اسکرول کیا جا سکتا ہے۔ اس رویے کو روکنے کے لیے، آپ ڈائیلاگ کھلنے کے دوران واضح طور پر اسکرولنگ کو غیر فعال کر سکتے ہیں۔

اس CodePen مثال پر ایک نظر ڈالیں:

جب میں موڈل دکھانے کے لیے بٹن پر کلک کرتا ہوں، تو صفحہ اب بھی ایک اسکرول بار دکھاتا ہے اور مجھے صفحہ کے ارد گرد اسکرول کرنے کی اجازت دیتا ہے۔

مجوزہ نقطہ نظر

اس مسئلے سے نمٹنے کے لیے ہم استعمال کر سکتے ہیں: has چھدم کلاس. has یہ اس کے بچے کے عناصر کی حالت کی بنیاد پر والدین کے عنصر کو منتخب کرنے میں مدد کرتا ہے۔ آپ چیک کر سکتے ہیں کہ آیا روٹ عنصر یا HTML عنصر پر کوئی موڈل کھلا ہے۔ اگر ایسا ہے تو، آپ روٹ عنصر یا HTML عنصر اوور فلو کو پوشیدہ پر سیٹ کر سکتے ہیں۔

مثال کے طور پر:

html:has(dialog[open]) {
  overflow: hidden;
}

موڈل کھلنے پر یہ صفحہ کی اسکرول بار کو چھپا دے گا۔ والدین عنصر کا استعمال کرتے ہوئے dialog براہ کرم ہمیں ٹیگ کریں۔ has چھدم کلاس. یہ ہمیشہ جڑ عنصر یا HTML عنصر نہیں ہونا چاہئے.

کہ ::backdrop چھدم کلاس

اگر آپ اپنی مرضی کے مطابق اوورلے رنگ استعمال کرنا چاہتے ہیں۔ popover آپ عناصر یا موڈل عناصر استعمال کر سکتے ہیں۔ ::backdrop ایک سیڈو کلاس جو موڈل اوورلے رنگوں کی ظاہری شکل کو اپنی مرضی کے مطابق بناتا ہے۔

ہاں:

dialog::backdrop {
  background: rgba(43, 50, 200, 0.4);
}

یہ متعین اوورلے کا اطلاق کرے گا۔ RGB رنگ اور opacity اوورلے پر 0.4 لگانے سے اوورلے قدرے شفاف ہو جاتا ہے۔

حتمی خیالات

مجھے امید ہے کہ آپ نے اس مضمون سے کچھ نیا سیکھا ہوگا اور یہ کہ آپ کو ان تکنیکوں کو اپنے منصوبوں میں استعمال کرنے میں مدد ملے گی۔

Scroll to Top