يتم مواجهة حدث تمرير الصفحة على البكرة في مؤثرات خاصة صفحة الويب ، لكن طريقة التنفيذ مختلفة ضمن متصفحات مختلفة. الطريقة التالية التي قمت بتطبيقها متوافقة مع المتصفحات الشائعة.
وظيفة getData (الحدث) {var e = event || window.event ؛ // احصل على مسافة التمرير (FF كل بيانات التمرير هي 3 أو -3 ، والبعض الآخر 120 أو -120) var data = e.detail || E.wheeldelta ؛ التنبيه (البيانات) ؛ }. // ff binds scroll event document.addeventListener ('DommusScroll' ، getData) ؛ } // ie else if (document.attachevent &&! document.addeventListener) {document.attachevent ('onMouseWheel' ، getData) ؛ } آخر {window.onmousewheel = getData ؛ }ما يستحق الإشارة في الكود:
1 لماذا تستخدم document.addeventListener &&! document.attachevent لتمييز IE؟
تعتبر الملحقات والفصل طرقًا خاصة بالأحداث الملزمة والأحداث غير المرغوب فيها ، وهذه الطريقة موجودة فقط في IE. ومع ذلك ، في متصفحات IE9+ ، يتم تنفيذ طريقة AddEventListener أكثر عمومية لربط الأحداث. إذا كانت طريقة المستند.
2 تجدر الإشارة إلى أنه لا يوجد حدث Mousewheel في متصفح FF ، والوقت الذي يتم فيه تشغيل التمرير هو Dommescroll.
3 شيء آخر يستحق الإشارة إليه هو أنه عند استخدام AddEventListener لربط الأحداث ، لا يتم إضافة أي على اسم الحدث ، ولكن عند استخدام AttankEvent لربط الأحداث في IE ، مطلوب.