منذ وقت ليس ببعيد، أرسل لي أحد مستخدمي الإنترنت الذي كان على وشك التخرج بريدًا إلكترونيًا. كان مشروع تخرجه بحاجة إلى تحقيق تأثير قفل الشاشة، لكنه لم يتمكن من فهم الكود المصدري لمربع الحوار الذي نشرته من قبل. وسألني عما إذا كان بإمكانه شرح ذلك لقد قلت إنني سأنشر الرمز المتعلق بشاشة القفل. وبما أنني كنت مشغولاً للغاية مؤخرًا، لم أتذكر ذلك إلا الآن، وآمل ألا يكون الوقت قد فات لكتابة هذا المقال.
الوصول إلى هذه النقطة:
في الوقت الحاضر، يتم استخدام طبقات القناع شبه الشفافة بملء الشاشة على نطاق واسع في مواقع الويب web2.0، ويتم تنفيذ معظم الأقنعة عن طريق حساب حجم الصفحة ثم تغطيتها بطبقة من نفس حجم الصفحة، مثل Tencent qzone وWordpress backend. . هذه الطريقة مفهومة، لكنها ستفشل في IE8 عندما تكون الصفحة طويلة جدًا (التفسير من المعلومات الأجنبية هو أنها مرتبطة ببطاقة الرسومات الخاصة بالجهاز). ، حتى أنهم يريدون إجبار IE8 على استخدام طريقة IE7 لتحليل أعماله. في الواقع لدينا طريقة أفضل، فلنستخدم CSS لحلها!
تذكر " الموقف: ثابت "؟ إنها سمة جديدة لـ CSS2. يمكنها جعل العنصر يظل ثابتًا على الصفحة ولا يتحرك عند سحب شريط التمرير. على سبيل المثال، يتم تنفيذ شريط التنقل الثابت في الجزء العلوي من Qzone بهذه الطريقة. وبالمثل، يمكننا أيضًا استخدام طبقة بارتفاع وعرض 100% لتغطية إطار عرض المتصفح، بحيث يمكن تحقيق إخفاء ملء الشاشة، وليست هناك حاجة لحساب حجم الصفحة، وليست هناك حاجة للتعديل ديناميكيًا الحجم عند تغيير حجم المتصفح.
تشغيل مربع التعليمات البرمجية
[Ctrl+A تحديد كافة النصائح: يمكنك تعديل جزء من الكود أولاً ثم الضغط على تشغيل]
ولكن هناك مشكلة. IE6 لا يدعم "الموضع: ثابت". يمكننا فقط تعديل قيمته TOP ديناميكيًا من خلال Js لمحاكاة الموضع الثابت عند سحب شريط التمرير، سيهتز القناع بالتأكيد لأنه في كل مرة يتغير فيها IE - تقديم مرة أخرى. لكن Microsoft زودتنا بميزة مثيرة جدًا للاهتمام. إذا قمت بتعيين صورة خلفية موضوعة بشكل ثابت لعلامة html أو body، فلن تهتز الطبقة عند سحب شريط التمرير، مما يحاكي تمامًا "position:fixed" ". في المشاريع الفعلية، وجدت أن هذه الميزة يمكنها أيضًا تشغيل وظائف خاصة أخرى، والتي سأشرحها لاحقًا.
من أجل توفير المتاعب، نستخدم التعبير الشرير لكتابة بعض البرامج النصية في CSS لـ IE6، وإعادة وضع طبقة القناع لدينا عند سحب شريط التمرير. تقول الأسطورة أن التعبير يتطلب أداءً مكثفًا للغاية، لكن تعبيرنا ليس به أي خسارة تقريبًا، ويمكن للطلاب المهتمين دراسة التعبير بعمق.
تشغيل مربع التعليمات البرمجية
[Ctrl+A تحديد كافة النصائح: يمكنك تعديل جزء من الكود أولاً ثم الضغط على تشغيل]
حسنًا، بعد التوافق مع الدمية ذات الرأس الكبير IE6، تم اعتماد قناع شاشة القفل الخاص بنا من قبل المتصفحات الرئيسية، ومع ذلك، فإن الطلاب الذين يستخدمون js لكتابة التأثيرات دائمًا ما يكونون محبطين للغاية ويريدون دائمًا إضافة شيء ما، لذلك سنضيف. برنامج نصي صغير لمقاطعة عمليات المستخدم عندما تكون الشاشة مقفلة، وتعطيل شريط التمرير، والعجلة، ومفتاح علامة التبويب، وتحديد الكل، والتحديث، والنقر بزر الماوس الأيمن لمحاكاة "شاشة قفل" حقيقية:
تشغيل مربع التعليمات البرمجية
[Ctrl+A تحديد كافة النصائح: يمكنك تعديل جزء من الكود أولاً ثم الضغط على تشغيل]
النص الأصلي: http://www.planeart.cn/?p=792