تمت إضافة العديد من الأحداث الجديدة إلى HTML، ولكن بسبب مشكلات التوافق، لم يتم استخدام العديد من الأحداث على نطاق واسع. بعد ذلك، سنقدم بعض أحداث اللمس المحمولة المفيدة: touchstart، touchmove، touchend.
يقدمولنعرض هذه الأحداث بإيجاز:
أحداث اللمس هذه لها خصائص dom مشتركة. بالإضافة إلى أنها تحتوي على ثلاث خصائص لتتبع اللمسات:
يحتوي كل كائن لمس على الخصائص التالية:
الآن بعد أن فهمت خصائص أحداث اللمس، فلنبدأ الجلسة العملية المثيرة.
القتال الفعليدعونا نستخدم أحداث اللمس لتنفيذ شريط تقدم منزلق على الجانب المحمول.
لنضع HTML أولاً
<div class=progress-wrapper> <div class=progress></div> <div class=progress-btn></div></div>
تم حذف جزء CSS هنا
احصل على عنصر dom وقم بتهيئة نقطة بداية اللمس والمسافة بين الزر والجزء الأيسر من الحاوية
constprogressWrapper = document.querySelector('.progress-wrapper')constتقدم = document.querySelector('.progress')constprogressBtn = document.querySelector('.progress-btn')constprogressWrapperWidth =progressWrapper.offsetWidthlet touchPoint = 0let btnLeft = 0الاستماع إلى الحدث touchstart
progressBtn.addEventListener('touchstart', e => { Let touch = e.touches[0] touchPoint = touch.clientX // احصل على الموضع الأولي للمس btnLeft = parseInt(getComputedStyle(progressBtn, null)['left'] ، 10) // تجاهل توافق متصفح IE هنا})الاستماع لأحداث touchmove
progressBtn.addEventListener('touchmove', e => {e.preventDefault() Let touch = e.touches[0] Let diffX = touch.clientX - touchPoint // احسب المسافة المتغيرة بالفرق بين الموضع الحالي والموضع الأولي Position Let btnLeftStyle = btnLeft + diffX // تحديد قيمة يسرى جديدة للزر touch.target.style.left = btnLeftStyle + 'px' progress.style.width = (btnLeftStyle /progressWrapperWidth) * 100 + '%' // احسب النسبة المئوية لطول شريط التقدم من خلال نسبة القيمة اليسرى للزر إلى طول حاوية شريط التقدم})من خلال سلسلة من العمليات المنطقية، تم تنفيذ شريط التقدم الخاص بنا بشكل أساسي، ولكن تم اكتشاف مشكلة عندما يتجاوز موضع اللمس حاوية شريط التقدم، فلنفرض بعض القيود.
إذا (btnLeftStyle >progressWrapperWidth) { btnLeftStyle =progressWrapperWidth } else if (btnLeftStyle < 0) { btnLeftStyle = 0}في هذه المرحلة، تم تنفيذ شريط تمرير متنقل بسيط
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.