مقدمة: يحتاج مشروع الشركة إلى استخدام إطار منبثق إلى الوسط رأسياً. تتشابه الطبقات المنبثقة الرأسية المماثلة على الإنترنت. نظرًا لأن المشروع يعتمد على jQuery ، استخدم $ (window). Height ()-layer.height ())/2 +$ (document) .scrolltop () للحصول على الإزاحة الرأسية. لقد اختبرت جميع أنواع المتصفحات دون أي مشكلة. بعد أن نقل الموظفون في الخلفية القيمة إلى المشروع ، كانت هناك مشكلة. عندما تجاوزت الصفحة شاشة واحدة ، تحت Chrome و FF ، لم يكن المربع المنبثق رأسيًا في الشاشة الحالية ، ولكن تتمحور حول صفحة الويب بأكملها.
بعد مراجعة المعلومات من جميع الأطراف ، تشير جميع الاستنتاجات:
1. ارتفاع النافذة ، $ (نافذة). Height ()
2. ارتفاع المستند ، $ (وثيقة). Height ()
3. ارتفاع المتداول ، $ (نافذة) .SCROLLTOP ()
ابحث عن السبب : إذن ، وجدت أن صفحة موظفي الواجهة الخلفية لم يكن لديهم doctype ، لذلك في Chrome ، $ (window). Height () = $ (document). Height () ، $ (document). Height () يعني أنه عندما لا يكون ارتفاع المحتوى الفعلي لصفحة الويب مليئة بشاشة واحدة ، فهذا يعني ارتفاع النافذة (القيمة التي ستتغير عندما يتم تغيير النافذة وخفضها. عندما تتجاوز الصفحة شاشة واحدة ، يتم التعبير عنها على أنها الارتفاع الفعلي لمحتوى صفحة الويب بأكمله. لا يوجد أي اعتراض على ذلك ، وليس له أي تأثير على تعيين Doctype أم لا. ومع ذلك: $ (window). Height () في انتقالية. إذا لم يتم تعيين Doctype ، $ (window) .Height () = $ (وثيقة). Height (). هذا هو ، عندما يتجاوز المحتوى شاشة واحدة ، $ (window). Height () هو الارتفاع الفعلي لصفحة الويب ، وهو ما يقال أنه يساوي ارتفاع النافذة.
حل:
S للحصول على ارتفاع النافذة ، يمكنك فقط إجراء تغييرات مماثلة بناءً على Doctype. إذا لم يتم تعيين Doctype ، فسيتم إجراء المعالجة التالية.
if ($ (document) .height ()> = $ (window) .height ()) {_windowheight = document.body.clientheight ؛ } آخر {// ALERT ($ (window) .height ()) ؛ _WindowHeight = $ (وثيقة). height () ؛ } ؛عندما يتم ضبط Doctype على transitional.dtd ، windowHeight = $ (window) .hight ()
المناقشة الموجزة أعلاه حول تأثير Doctype على قيمة $ (Window). Height () هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.