شاشة
إزاحة الماوس من الركن الأيسر العلوي من شاشة الشاشة
صفحة
إزاحة الماوس من الركن الأيسر العلوي من الصفحة (لن تتأثر قيمتها بشريط التمرير)
هذه الخاصية غير مدعومة بموجب IE9
ولكن يمكنك كتابة بعض التعليمات البرمجية لحسابها. التنفيذ في jQuery:
نسخة الكود كما يلي:
// احسب pagex/y إذا فقدت و clientx/y متاحة
if (event.pagex == null && Original.clientx! = null) {
eventDoc = event.target.ownerdocument || وثيقة؛
doc = eventDoc.DocumentElement ؛
الجسم = EventDoc.body ؛
event.pagex = Original.clientx + (doc && doc.scrollleft || body && body.scrollleft || 0) - (doc && doc.clientleft ||| body && body.clientleft || 0) ؛
event.pagey = Original.clienty + (doc && doc.scrolltop || body && body.scrolltop || 0) - (doc && doc.clienttop || body && body.clienttop || 0) ؛
}
فقط قم بتنفيذها ببساطة.
إزاحة الماوس بالنسبة إلى منفذ عرض المتصفح بالإضافة إلى الارتفاع الخفي لحبة التمرير الخاصة بالوثيقة مطروحًا من عميل المستند.
نسخة الكود كما يلي:
var pagey = event.clienty +document.documentElement. scrolltop-document.documentElement.clienttop
لماذا طرح المستند
هذا هو إزاحة المستند الخاص بالمتصفح بموجب IE8. حتى إذا تم تعيين HTML على 0 ، فلن يؤثر الحشو والهامش من الجسم على قيمته.
تم اختباره تحت IE7 ، احصل
نسخة الكود كما يلي:
document.documentElement.clienttop -> 2px document.documentElement.clientleft -> 2px
document.bocy.clienttop -> 0px document.body.clientleft -> 0px
عميل
إزاحة الماوس من الزاوية اليسرى العليا من منفذ عرض المتصفح
انتبه إلى الفرق بين العميل و pagey. تعادل قيمة العميل Pagey عندما لا يكون هناك شريط تمرير على الصفحة.
----------------------------------------- تجزئة -----------------------------------------------
طبقات
إذا لم يكن نمط الموضع للعنصر هو الثابت الافتراضي ، فإننا نقول أن هذا العنصر يحتوي على سمات تحديد المواقع.
ابحث عن أقرب عنصر مع سمات تحديد المواقع في العنصر الذي يثير حاليًا حدث الماوس وعناصر أسلافه ، وحساب قيمة إزاحة الماوس منه للعثور على النقطة الدبلوماسية في الركن الأيسر العلوي من حدود العنصر كنقطة نسبية. إذا كان لا يمكن العثور على عنصر مع سمة تحديد المواقع ، فسيتم حساب الإزاحة بالنسبة للصفحة الحالية ، والتي تعادل Pagey في هذا الوقت.
لا يتم دعم هذه السمة بموجب IE9 ، ولكن يمكن استبدالها بذاتها الفريدة.
ذرية
أي خصائص محددة
الفرق بين الخبرة والطبقات هو أنه عند حساب قيمة الإزاحة ، يكون الأول نسبة إلى نقطة التقاطع الداخلية في الزاوية اليسرى العليا من حدود العنصر. لذلك ، عندما يكون الماوس على حدود العنصر ، تكون قيمة الإزاحة قيمة سالبة. بالإضافة إلى ذلك ، لا يهتم Offety ما إذا كان العنصر الذي يثير الحدث له سمات تحديد المواقع. يحسب دائمًا قيمة الإزاحة بالنسبة للعنصر الذي يؤدي إلى حدوث الحدث.
بالنظر إلى الفرق بين الطبقات والذرية ، يجب عليك الانتباه إلى استخدام اثنين متوافق.
1. العنصر الذي يؤدي إلى ضبط الحدث يجب أن يضع سمة تحديد المواقع.
2. عندما يكون للعنصر أعلى الحدود العلوية ، يكون للصفات قيمة عرض أعلى من الحدود من قيمة Offety.
نسخة الكود كما يلي:
// يجب أن يكون العنصر.
var bordertopwidth = window.getComputedStyle؟ window.getComputedStyle (عنصر ، null) .borderTopWidth: element.currentStyle.BorderTopWidth ؛
var Offsety = event.offsety || (event.layery + borderTopWidth) ؛
من خلال خصائص الطبقات والذرية ، من المريح للغاية حساب إزاحة الماوس بالنسبة لعنصر حدث الماوس المربوطة ، وهو مفيد للغاية في بعض الأوقات.
هنا نتحدث عن سمة الإزاحة للاتجاه الرأسي للماوس. إن الإزاحة في الاتجاه الأفقي مشابه ، لذلك لن نناقشه بعد الآن.
ما سبق هو كل شيء عن هذا المقال ، أتمنى أن تنال إعجابك.