هل يتم عرض HTML5 Canvas خارج الشاشة افتراضيًا؟
-
27-10-2019 - |
سؤال
إذا فعلت هذا: Genacodicetagpre
وهذا: Genacodicetagpre
هل سيتم عرض المستطيل أم سيتم تجاهله افتراضيًا؟
المحلول
بعيدًا عن النظر في شفرة المصدر لمتصفح ، لا أعتقد أن هناك أي طريقة لمعرفة ذلك. المواصفات تعطينا تلميحًا واحدًا:
عند رسم شكل أو صورة ، يجب على وكلاء المستخدم اتباع هذه الخطوات ، بالترتيب المقدم (أو التصرف كما لو كانوا يفعلون):
اعرض الشكل أو الصورة على صورة نقطية سوداء شفافة لانهائية
لاحظ كلمة "لانهائي".لذا تقترح المواصفات أن المتصفح يجب أن يعرض الأشياء التي تتجاوز حدود اللوحة.ولكن إذا اضطررت إلى التخمين ، ستلاحظ معظم المتصفحات أن الشكل خارج منطقة القطع الحالية وتترك المكالمة.لا توجد طريقة لتقديم شيء يتجاوز حدود اللوحة القماشية ثم "تمريره" في العرض ، فاللوحة ليس لها مفهوم عن ذلك.
نصائح أخرى
أنشأت هذا العرض التوضيحي http://jsbin.com/okoful/edit#javascript،html، live باستخدام لوحتين وأستنتج أنه إذا رسمنا خارج اللوحة فلن يتم عرضها. Genacodicetagpre
$ ("# debug"). text ("Output:") ؛
يختلف الأمر باختلاف المتصفحات وأوامر الرسم المختلفة.
لقد حذر IE9 وقام بإجراء مكالمات no-op on drawImage إذا كانت الصورة خارج حدود اللوحة القماشية.يمكن ملاحظة ذلك بسهولة في ملف تعريف الأداء IE9.
قد يكون هذا تحسينًا يتم إجراؤه فقط عندما تكون مصفوفة التحويل هي الهوية ، ولم أتحقق من غير ذلك.
تختلف المتصفحات الأخرى بالطبع!