HTML5触摸事件怎样实现移动端简易进度条

  

HTML5触摸事件怎样实现移动端简易进度条?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,这篇文章主要介绍了关于HTML5触摸事件实现移动端简易进度条的实现方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

HTML中新添加了许多新的事件,但由于兼容性的问题,许多事件都没有广泛的应用,接下来为大家介绍一些好用的移动端触摸事件:touchstart, touchmove, touchend。

下面我们来简单介绍一下这几个事件:

<李>

touchstart:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。

<李>

touchmove:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。

<李>

touchend:当手指从屏幕上离开的时候触发。

这些触摸事件具有常见的dom属性。此外,他们还包含着三个用于跟踪触摸的属性:

<李>

触动:表示当前跟踪的触摸操作的接触对象的数组。

<李>

targetTouches:特定于事件目标的接触对象的数组。

<李>

changeTouches:表示自上次触摸以来发生了什么改变的接触对象的数组。

每个触摸对象包含的属性如下:

<李>

clientX:触摸目标在视口中的x坐标。

<李>

clientY:触摸目标在视口中的y坐标。

<李>

pageX:触摸目标在页面中的x坐标。

<李>

pageY:触摸目标在页面中的y坐标。

<李>

screenX: screenX:触摸目标在屏幕中的x坐标。

<李>

screenY: screenX:触摸目标在屏幕中的x坐标。

<李>

标识符:标识触摸的唯一ID。

<李>

目标:screenX:触摸目标在屏幕中的x坐标。

了解了触摸事件的特征,那就开始紧张刺激的实战环节吧

下面我们来通过使用触摸事件来实现一个移动端可滑动的进度条

我们先进行HTML的布局

& lt; p类=皃rogress-wrapper"比;   类& lt; p=皃rogress"祝辞& lt;/p>   类& lt; p=皃rogress-btn"祝辞& lt;/p>   & lt;/p>

CSS部分此处省略

获取dom元素,并初始化触摸起点和按钮离容器最左方的距离

const progressWrapper=document.querySelector (& # 39; .progress-wrapper& # 39;)   const进步=document.querySelector(& # 39;编# 39;)   const progressBtn=document.querySelector (& # 39; .progress-btn& # 39;)   const progressWrapperWidth=progressWrapper.offsetWidth      让接触点=0   让btnLeft=0

监听touchstart事件

progressBtn.addEventListener (& # 39; touchstart& # 39;, e=比;{   让触摸=e.touches [0]   接触点=联系。clientX//获取触摸的初始位置   btnLeft=方法(getComputedStyle (progressBtn null)(& # 39;左# 39;),10)//此处忽略IE浏览器兼容性   })

监听touchmove事件

progressBtn.addEventListener (& # 39; touchmove& # 39;, e=比;{   e.preventDefault ()   让触摸=e.touches [0]      让diffX=联系。clientX -接触点//通过当前位置与初始位置之差计算改变的距离   让btnLeftStyle=btnLeft + diffX//为按钮定义新的左值      touch.target.style。左=btnLeftStyle + & # 39; px # 39;      progress.style。宽度=(btnLeftStyle/progressWrapperWidth) * 100 + & # 39; % & # 39;//通过按钮的左值与进度条容器长度的比值,计算进度条的长度百分比   })

通过一系列的逻辑运算,我们的进度条已经基本实现了,但是发现了一个问题,当触摸位置超出进度条容器时,会产生虫,我们再来做一些限制

如果btnLeftStyle祝辞progressWrapperWidth) {   btnLeftStyle=progressWrapperWidth   }else if (btnLeftStyle & lt;0){   btnLeftStyle=0   }

至此,一个简单的移动端滚动条就实现了

感谢各位的阅读!看完上述内容,你们对HTML5触摸事件怎样实现移动端简易进度条大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

HTML5触摸事件怎样实现移动端简易进度条