سؤال

أنا أستخدم jQuery 1.3.2.

أواجه مشكلة في الحصول على "ارتفاع" صحيح في Internet Explorer 6. قيم الارتفاع صحيحة في جميع المتصفحات الأخرى.

أنا أيضا أستخدم Wresize jQuery Plugin.

في كل مرة يتم فيها تحميل المتصفح ، أقوم بإطلاق طريقة تقوم بتغيير حجم divs ، والإطارات على أساس أبعاد المتصفح. (هناك سبب وجيه لهذا.)

يبدو أن القيمة التي تم إرجاعها من $ ('body'). الارتفاع () ، في IE 6 ، تضيف 10 بكسل بعد كل تغيير حجم المتصفح.

أي شخص آخر يصادف شيئًا كهذا؟

var iframeH = 0, h = 0, groupH = 0, adjust = 0;

var tableH = $("#" + gridId + "_DXHeaderTable").parent().height();
var pagerH = $(".dxgvPagerBottomPanel").height();
var groupHeight = $(".dxgvGroupPanel").height();

if (pagerH == null)
    pagerH = 0;

if (groupHeight != null)
    groupH = groupHeight + pagerH;

iframeH = $('body').height();
h = (iframeH - (tableH + pagerH + groupH));

$('#' + gridId + "Panel").css("height", (h + "px"));
$("#" + gridId + "_DXMainTable").parent().css("height", (h + "px"));

هذا الرمز هو ضبط ارتفاع شبكة devexpress في حاوية الوالدين. تجاهل حقيقة أن الكود يمكن أن يكون أفضل. قون

هل هناك شيء آخر غير "الجسم" يمكنني استخدامه للحصول على حجم صحيح؟ لقد جربت كائن النافذة ($ (window). Height ()) ، لكن هذا لا يبدو أنه يساعد كثيرًا.

أي أفكار موضع تقدير!

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

المحلول

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

حاول الحصول $ ("الجسم"). innerheight () و $ ("الجسم"). Outerheight () وقارنها في متصفحات مختلفة ، ستحصل على بعض النتائج الشائعة. في أسوأ حالات قد تحتاج إلى تشغيل بعض if حالات

نصائح أخرى

بالتأكيد ، إليك بعض الأفكار:

مع IE ، و esp. الأقدم ، أود إضافة بيان 1-10ms setTimeout حول وظائف عرض الطول الخاصة بي-فهو يعطي DOM و IE فرصة "للاسترخاء"

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

شيء آخر هو أن الارتفاع () هو في بعض الأحيان متزعزع. جرب .css ('الارتفاع') لاسترداد الارتفاع [إنه أسرع أيضًا] وإزالة "px" لما هو بعض الأحيان القياس الحقيقي.

أو استخدم أبعاد سد بالنسبة إلى jQuery الذي يمنحك الكثير للعمل معه وهو متصفح متقاطع.

يمكنني استخدام هذا البرنامج المساعد من أجل رسم خطوط من سحب إلى مسرح كما أظهر هنا

$('body').height(); // call this first

iframeH = $('body').height(); //then try this
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top