IE8 تحطم على وضع خلفية getStyle
-
05-07-2019 - |
سؤال
لقد وجدت خطأ غريب في 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 ، ومع ذلك ، تعطل على الرمز أعلاه.
أي شخص لديه مشاكل مماثلة؟
المحلول
شكرا للمساعدة الجميع. هذا حقا خطأ ويعمل فقط في السيناريو التالي.
- يجب تحميل CSS على ورقة الأنماط الخارجية
- العنصر ليس له تصميم مضمّن
طريقة إصلاحها ، حتى قاسية قذرة ، هي إضافة التصميم المضمّن إلى العنصر. يجعل 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");
}
يعمل بشكل جيد بالنسبة لي حتى الآن.