Home Web Front-end HTML Tutorial Implementation method of HTML5 touch event to implement simple progress bar on mobile terminal

Implementation method of HTML5 touch event to implement simple progress bar on mobile terminal

May 05, 2018 am 10:09 AM
h5 html5 move

This article mainly introduces the implementation method of HTML5 touch event to implement a simple progress bar on the mobile terminal. It has a certain reference value. Now I share it with you. Friends in need can refer to it

Preface

Many new events have been added to HTML, but due to compatibility issues, many events are not widely used. Next, we will introduce some useful ones. Mobile touch events: touchstart, touchmove, touchend.

Introduction

Let’s briefly introduce these events:

  1. touchstart: Triggered when a finger touches the screen, even if there is already a finger on the screen.

  2. touchmove: Triggered continuously when the finger slides on the screen. During this event, calling the preventDefault() event can prevent scrolling.

  3. touchend: Triggered when the finger leaves the screen.

These touch events have common dom attributes. In addition, they also contain three properties for tracking touches:

  1. touches: An array of touch objects representing the currently tracked touch operations.

  2. targetTouches: Array of Touch objects specific to event targets.

  3. changeTouches: An array of Touch objects that represent what has changed since the last touch.

Each touch object contains the following properties:

  1. clientX: The x coordinate of the touch target in the viewport.

  2. clientY: The y coordinate of the touch target in the viewport.

  3. pageX: The x coordinate of the touch target in the page.

  4. pageY: The y coordinate of the touch target in the page.

  5. screenX: screenX: The x coordinate of the touch target in the screen.

  6. screenY: screenX: The x coordinate of the touch target in the screen.

  7. identifier: A unique ID that identifies the touch.

  8. target: screenX: The x coordinate of the touch target in the screen.

After understanding the characteristics of touch events, let’s start the exciting actual combat session

Practical combat

Let’s use touch events to implement a sliding progress bar on the mobile side

Let’s lay out the HTML first

<p class="progress-wrapper">
    <p class="progress"></p>
    <p class="progress-btn"></p>
</p>
Copy after login

CSS part is omitted here

Get the dom element and initialize the distance between the touch starting point and the button from the leftmost corner of the container

const progressWrapper = document.querySelector(&#39;.progress-wrapper&#39;)
const progress = document.querySelector(&#39;.progress&#39;)
const progressBtn = document.querySelector(&#39;.progress-btn&#39;)
const progressWrapperWidth = progressWrapper.offsetWidth

let touchPoint = 0
let btnLeft = 0
Copy after login

Listen to touchstart Event

progressBtn.addEventListener(&#39;touchstart&#39;, e => {
    let touch = e.touches[0]
    touchPoint = touch.clientX // 获取触摸的初始位置
 btnLeft = parseInt(getComputedStyle(progressBtn, null)[&#39;left&#39;], 10) // 此处忽略IE浏览器兼容性
})
Copy after login

Listen to touchmove event

progressBtn.addEventListener(&#39;touchmove&#39;, e => {
e.preventDefault()
    let touch = e.touches[0]

    let diffX = touch.clientX - touchPoint // 通过当前位置与初始位置之差计算改变的距离
    let btnLeftStyle = btnLeft + diffX // 为按钮定义新的left值

    touch.target.style.left = btnLeftStyle + &#39;px&#39;

    progress.style.width = (btnLeftStyle / progressWrapperWidth) * 100 + &#39;%&#39; // 通过按钮的left值与进度条容器长度的比值,计算进度条的长度百分比
})
Copy after login

Through a series of logical operations, we The progress bar has been basically implemented, but a problem has been discovered. When the touch position exceeds the progress bar container, a bug will occur. Let's make some restrictions

if (btnLeftStyle > progressWrapperWidth) {
    btnLeftStyle = progressWrapperWidth
    } else if (btnLeftStyle < 0) {
    btnLeftStyle = 0
}
Copy after login

So far, a simple mobile scroll bar has been implemented

Related recommendations:

How to use and create HTML5 video subtitles

The use of audio and video tags in HTML5


The above is the detailed content of Implementation method of HTML5 touch event to implement simple progress bar on mobile terminal. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Table Border in HTML Table Border in HTML Sep 04, 2024 pm 04:49 PM

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

Nested Table in HTML Nested Table in HTML Sep 04, 2024 pm 04:49 PM

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

HTML margin-left HTML margin-left Sep 04, 2024 pm 04:48 PM

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

HTML Table Layout HTML Table Layout Sep 04, 2024 pm 04:54 PM

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

HTML Input Placeholder HTML Input Placeholder Sep 04, 2024 pm 04:54 PM

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

HTML Ordered List HTML Ordered List Sep 04, 2024 pm 04:43 PM

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

Moving Text in HTML Moving Text in HTML Sep 04, 2024 pm 04:45 PM

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.

HTML onclick Button HTML onclick Button Sep 04, 2024 pm 04:49 PM

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.

See all articles