AMP

amp-lightbox

 
You can now use this component outside valid AMP documents using the Bento version of this component. Learn more in the Bento guide.

Description

Displays elements in a full-viewport “lightbox” modal.

 

Required Scripts

<script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script>

Supported Layouts

الوصف يعرض العناصر في شكل عرض مبسط بالحجم الكامل.
النص البرمجي المطلوب <script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script>
التنسيقات المعتمدة nodisplay
أمثلة يمكن الاطّلاع على مثال amp-lightbox في الموقع "AMP بالمثال".

[جدول المحتويات]

السُلوك

يحدد المكوِّن amp-lightbox العناصر الثانوية التي يتم عرضها في تراكب/شكل إطار العرض الكامل. عندما ينقر المستخدِم على عنصر (مثل زر)، فإن معرّف amp-lightbox المُشَار إليه في السمة on للعنصر يؤدي إلى ظهور العرض المبسط بحيث يأخذ حجم كامل الإطار ويعرض عناصر amp-lightbox الثانوية.

يؤدي الضغط على مفتاح escape في لوحة المفاتيح إلى غلق العرض المبسط. أو بدلاً من ذلك، يؤدي تعيين السمة on على عنصر واحد أو أكثر في العرض المبسط وتعيين طريقته على close إلى إغلاق العرض المبسط عند النقر على العنصر.

<button on="tap:quote-lb">See Quote</button>
<amp-lightbox id="quote-lb" layout="nodisplay">
    <blockquote>"Don't talk to me about JavaScript fatigue" - Horse JS</blockquote>
    <button on="tap:quote-lb.close">Nice!</button>
</amp-lightbox>

يوجد أيضًا المكوِّن <amp-image-lightbox> لعرض الصور في العرض المبسط.

السمات

animate-in (اختياريّة) تحدد نمط حركة فتح العرض المبسط. وسيتم تعيين هذا تلقائيًا على fade-in. والقيم الصالحة هي fade-in وfly-in-bottom وfly-in-top.

ملاحظة: تعمل الحركة fly-in-* على الإعداد المسبق لتعديل الخاصية transform للعنصر amp-lightbox. لا تعتمد على تحويل العنصر amp-lightbox مباشرة. إذا احتجت إلى تطبيق تحويل، عيِّنه على عنصر مدمج بدلاً من ذلك.
close-button (مطلوبة في إعلانات AMPHTML) تعرض رأس زر الإغلاق أعلى العرض المبسط. هذه السمة مطلوبة وصالحة للاستخدام مع إعلانات AMPHTML فقط.
id (مطلوبة) معرّف فريد للعرض المبسط.
layout (مطلوبة) يجب تعيينها على nodisplay.
scrollable (اختياريّة) عند توفر السمة scrollable، يمكن تمرير محتوى العرض المبسط عندما يتجاوز ارتفاع إعلان العرض المبسط.

ملاحظة: غير مسموح بالسمة scrollable عند استخدام <amp-lightbox> داخل إعلان AMPHTML. اقرأ القسم استخدام amp-lightbox في إعلانات AMPHTML للحصول على التفاصيل.
scrollable (اختياريّة)

التصميم

يمكنك تصميم amp-lightbox باستخدام CSS القياسي.

الإجراءات

يعرض amp-lightbox الإجراءات التالية التي يمكنك استخدام بنية on في AMP لتشغيلها:

الإجراء الوصف
open (تلقائي) يفتح العرض المبسط.
close يغلق العرض المبسط.

استخدام amp-lightbox في إعلانات AMPHTML

إن استخدام المكوِّن amp-lightbox في إعلانات AMPHTML تجريبي وخاضع للتطوير المستمر. لاستخدام amp-lightbox في إعلانات AMPHTML، فعِّل التجربة amp-lightbox-a4a-proto.

هناك بعض الاختلافات بين استخدام amp-lightbox في مستندات AMP العادية والإعلانات المكتوبة باللغة AMPHTML:

السمة close-button مطلوبة

تكون السمة close-button مطلوبة بالنسبة إلى إعلانات AMPHTML. تؤدي هذه السمة إلى عرض رأس أعلى العرض المبسط. ويحتوي الرأس على زر الإغلاق وتصنيف مكتوب عليه "إعلان". ترجع أسباب طلب هذا الرأس إلى ما يلي:

  • إعداد تجربة متسقة للمستخدِم يمكن التنبؤ بها لإعلانات AMPHTML
  • التأكد من وجود نقطة خروج دائمة للعرض المبسط، وإلا يمكن لتصميم الإعلان اختراق محتوى مستندات المضيف بفعالية من خلال العرض المبسط.

السمة close-button مطلوبة ولا يُسمح بها إلا في إعلانات AMPHTML. في مستندات AMP العادية، يمكنك تقديم زر الإغلاق في أي مكان تحتاج إليه كجزء من محتوى <amp-lightbox>.

غير مسموح بإعلانات العرض المبسط القابلة للتمرير

بالنسبة إلى إعلانات AMPHTML، لا يُسمح باستخدام إعلانات العرض المبسط القابلة للتمرير.

الخلفية شفافة

عندما تستخدم <amp-lightbox> في إعلانات AMPHTML، تصبح خلفية العنصر <body> شفافة لأن وقت تشغيل AMP يغيّر حجم محتوى تصميم الإعلان ويعيد تنظيمه قبل توسيع العرض المبسط. يتم ذلك لمنع حدوث "قفزة" بصرية في التصميم أثناء فتح الإعلان. إذا كان تصميم إعلانك يحتاج إلى خلفية، عيّنها على حاوية متوسطة (مثل <div> بالحجم الكامل) بدلاً من <body>.

عند تشغيل إعلان AMPHTML في بيئة خارجية (في مستند غير AMP مثلاً)، يتوسط التصميم في إطار العرض ثم يتم توسيعه. ويحدث هذا لأن إطارات iframe الخارجية تحتاج إلى الاعتماد على واجهة برمجة تطبيقات postMessage لتفعيل ميزات مثل تغيير حجم الإطار، وهو ما يحدث بشكل غير متزامن، لذا فإن توسيط التصميم أولاً يتيح انتقالاً سلسًا بدون حدوث قفزات مرئية.

أمثلة على الانتقال في العرض المبسط لإعلانات AMPHTML

في الأمثلة أدناه، نوضح شكل الانتقال لإعلان AMPHTML يحتوي على السمة animate-in="fly-in-bottom" وقد تم تعيينها على عنصر العرض المبسط لإعلان AMPHTML في إطار iframe صديق وإعلان AMPHTML في iframe خارجي.

إطارات iframe صديقة (من ذاكرة التخزين المؤقت لصفحات AMP مثلاً)

إطارات iframe خارجية (من خارج ذاكرة التخزين المؤقت لصفحات AMP مثلاً)

التحقق

اطِّلع على قواعد amp-lightbox في مواصفات مدقق AMP.

هل تحتاج إلى مزيد من المساعدة؟

لقد قرأت هذا المستند عشرات المرات ولكن ألم يُجِب عن جميع أسئلتك؟ ربما حصل ذات الأمر مع أشخاص آخرين: تواصل معهم على Stack Overflow.

الذهاب إلى Stack Overflow
هل وجدت خطأ أو تفتقد لميزة؟

يشجع مشروع AMP مشاركتك ومساهمتك بشدة! ونأمل أن تكون مشاركًا دائمًا في مجتمعنا مفتوح المصدر، ولكننا نشجع أيضًا المساهمات التي تحدث لمرة واحدة في الأمور التي تتحمس لها.

الانتقال إلى GitHub