محاذاة رأسيا ديس باستخدام jQuery لتعيين الهامش أعلى

StackOverflow https://stackoverflow.com/questions/2289123

  •  21-09-2019
  •  | 
  •  

سؤال

هل يمكن لأي شخص أن يخبرني أين أخطأ ... أنا أستخدم ما يلي لمحاذاة Div رأسيًا عن طريق ضبط الهامش ، باستخدام (النافذة). 625 هو ارتفاع Div الذي يتركز ...

هذا يعمل في Firefox ولكن IE7 لا يضبط الهامش حتى تقوم بتغيير حجم نافذة المتصفح.

موقع الاختبار في http://guylloyd.co.uk

أي فكرة سيكون موضع تقدير مثير للدهشة!

مارتن

jQuery.noConflict();
jQuery(document).ready(function () {

jQuery(function(){   
var $marginTop = ((jQuery(window).height() - 625) / 2 + 'px');
if(jQuery(window).height() > 625){
jQuery('body').css({'margin-top': $marginTop});   
}
});

jQuery(window).resize(function(){
var $marginTop = ((jQuery(window).height() - 625) / 2 + 'px');
if(jQuery(window).height() > 625){
jQuery('body').css({'margin-top': $marginTop});
}
});

});

هل كانت مفيدة؟

المحلول

لا تحتاج حقًا إلى استخدام jQuery لوضع المحتوى بهذه الطريقة ، يمكن أن يحقق CSS البسيط و XHTML نفس الشيء.

يمكن أن تكون مشكلة كما في IE6 والتي تسبب تأخيرًا في JavaScript التي تم تنفيذها ، حاول ، بما في ذلك وقتًا طويلاً ومكالمة إلى رمز Seth الذي صممه Seth

function doResize() {   
    var $marginTop = ((jQuery(window).height() - 625) / 2 + 'px');   
    if(jQuery(window).height() > 625){   
        jQuery('body').css({'margin-top': $marginTop});   
    }   
}  
//when document has been fully loaded
jQuery(document).ready(function()
{
    setTimeout('doResize()', 1 );

}); 

نصائح أخرى

لست متأكدًا من سؤالك الفعلي ، ولهذا السبب لا يقوم IE7 بإعداد الهامش حتى تقوم بتغيير حجم النافذة ، لكنك قد تفكر في تقليل الكود الزائد مثل هذا:

function doResize() {
    var $marginTop = ((jQuery(window).height() - 625) / 2 + 'px');
    if(jQuery(window).height() > 625){
        jQuery('body').css({'margin-top': $marginTop});
    }
}

jQuery.noConflict();
jQuery(document).ready(doResize);
jQuery(window).resize(doResize);

بالنسبة إلى IE ، ماذا يحدث إذا أضفت بعض عبارات التنبيه إلى الطريقة حتى تتمكن من معرفة متى يتم استدعاؤها. هل IE7 لا تنفذ الدالة المستند. أم أنها تنفذ ، ولكن لا تفعل أي شيء؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top