มีการเพิ่มกิจกรรมใหม่ ๆ มากมายลงใน HTML แต่เนื่องจากปัญหาความเข้ากันได้ กิจกรรมจำนวนมากจึงไม่ได้ใช้กันอย่างแพร่หลาย ต่อไป เราจะแนะนำกิจกรรมการสัมผัสบนมือถือที่มีประโยชน์: touchstart, touchmove, touchend
แนะนำมาแนะนำเหตุการณ์เหล่านี้โดยย่อ:
เหตุการณ์การสัมผัสเหล่านี้มีคุณสมบัติ dom เหมือนกัน นอกจากนี้ยังมีคุณสมบัติสามประการสำหรับการติดตามการสัมผัส:
วัตถุสัมผัสแต่ละอันมีคุณสมบัติดังต่อไปนี้:
ตอนนี้คุณเข้าใจลักษณะของกิจกรรมการสัมผัสแล้ว มาเริ่มเซสชั่นภาคปฏิบัติที่น่าตื่นเต้นกันดีกว่า
การต่อสู้ที่เกิดขึ้นจริงลองใช้เหตุการณ์การสัมผัสเพื่อใช้แถบความคืบหน้าแบบเลื่อนทางฝั่งมือถือ
มาจัดวาง HTML ก่อน
<div class=progress-wrapper> <div class=progress></div> <div class=progress-btn></div></div>
ส่วน CSS ละเว้นที่นี่
รับองค์ประกอบ dom และเริ่มต้นจุดเริ่มต้นการสัมผัสและระยะห่างระหว่างปุ่มและส่วนซ้ายสุดของคอนเทนเนอร์
constความคืบหน้าWrapper = document.querySelector('.progress-wrapper')constความคืบหน้า = document.querySelector('.progress')constprogressBtn = document.querySelector('.progress-btn')constprogressWrapperWidth =progressWrapper.offsetWidthlet touchPoint = 0let btnLeft = 0ฟังกิจกรรม TouchStart
ความคืบหน้าBtn.addEventListener('touchstart', e => { ให้สัมผัส = e.touches[0] touchPoint = touch.clientX // รับตำแหน่งเริ่มต้นของการสัมผัส btnLeft = parseInt(getComputedStyle(progressBtn, null)['left'] , 10 ) // ละเว้นความเข้ากันได้ของเบราว์เซอร์ IE ที่นี่})ฟังเหตุการณ์ touchmove
ความคืบหน้าBtn.addEventListener('touchmove', e => {e.preventDefault() ให้ touch = e.touches[0] ให้ diffX = touch.clientX - touchPoint // คำนวณระยะทางที่เปลี่ยนแปลงโดยความแตกต่างระหว่างตำแหน่งปัจจุบันและค่าเริ่มต้น ตำแหน่ง ให้ btnLeftStyle = btnLeft + diffX // กำหนดค่าซ้ายใหม่สำหรับปุ่ม touch.target.style.left = btnLeftStyle + 'px' progress.style.width = (btnLeftStyle / ProgressWrapperWidth) * 100 + '%' // คำนวณเปอร์เซ็นต์ความยาวของแถบความคืบหน้าผ่านอัตราส่วนของค่าด้านซ้ายของปุ่มต่อความยาวของคอนเทนเนอร์แถบความคืบหน้า})โดยพื้นฐานแล้วแถบความคืบหน้าของเราได้ถูกใช้งานผ่านการดำเนินการเชิงตรรกะหลายชุด แต่พบปัญหาเมื่อตำแหน่งสัมผัสเกินคอนเทนเนอร์แถบความคืบหน้า เรามาสร้างข้อจำกัดกัน
ถ้า (btnLeftStyle >ความคืบหน้าWrapperWidth) { btnLeftStyle =ความคืบหน้าWrapperWidth } อย่างอื่นถ้า (btnLeftStyle < 0) { btnLeftStyle = 0}ณ จุดนี้ แถบเลื่อนบนมือถือแบบธรรมดาได้ถูกนำมาใช้แล้ว
ข้างต้นคือเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการศึกษาของทุกคน ฉันหวังว่าทุกคนจะสนับสนุน VeVb Wulin Network