سؤال

لقد وجدت خطأ غريب في Internet Explorer 8. ربما يمكن لشخص ما مساعدتي في التحرك.

عندما أحاول الاستيلاء على موضع الخلفية لعنصر ما ، باستخدام background-position-x تعمل جميع إصدارات Internet Explorer على أنها مستثمرة باستثناء IE8 التي تعطل.

عندما أركض el.getStyle('background-position') جميع المتصفحات تعطيني القيم الصحيحة إلا من IE (6 و 7 و 8) التي تعود undefined.

لذلك أنا أستخدم el.getStyle('background-position-x') لجميع إصدارات IE.

IE8 ، ومع ذلك ، تعطل على الرمز أعلاه.

أي شخص لديه مشاكل مماثلة؟

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

المحلول

شكرا للمساعدة الجميع. هذا حقا خطأ ويعمل فقط في السيناريو التالي.

  1. يجب تحميل CSS على ورقة الأنماط الخارجية
  2. العنصر ليس له تصميم مضمّن

طريقة إصلاحها ، حتى قاسية قذرة ، هي إضافة التصميم المضمّن إلى العنصر. يجعل IE8 سعيدا وجميع المتصفحات الأخرى تعمل.

لم أختبر ولكن ، حسب إلى هذه التذكرة, ، FF2 يعاني أيضا من نفس السلوك.

ملاحظات جانبية:
MARCGG - كنت سأقوم بتصويت إجابتك لأنها ليست مفيدة حقًا (وملزم أن تبدأ حرب اللهب) ، لكن كل الحقيقة قالت ، إن jQuery لا يظهر هذه المشكلة. على الرغم من ذلك ، كما عرفت بالفعل ، إنه ليس خيارًا! ؛)

fabien - أي الدعم background-position-x ويفتقر إلى الدعم ل background-position البناء المعتمد W3C.

نصائح أخرى

لماذا لا تستخدم وظيفة CSS JQuery هذا يعمل بشكل جيد Crossbrowser؟

جرب استخدام:

el.getStyle('backgroundPositionX')

و

el.getStyle('backgroundPositionX')

نعم ، الخيط الأقدم ، لكنني كنت أحسب أنشر حلًا آخر صدمته في @ Mootools Lighthouse ....

if (Browser.Engine.trident){
    var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
    var xy = el.getStyle("backgroundPosition");
}

يعمل بشكل جيد بالنسبة لي حتى الآن.

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