HTML5触摸事件实现移动端简易进度条的实现方法

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

前言

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

介绍

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

立即学习“前端免费学习笔记(深入)”;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

identifier:标识触摸的唯一ID。

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

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

实战

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

我们先进行HTML的布局

CSS部分此处省略

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

const progressWrapper = document.querySelector('.progress-wrapper')const progress = document.querySelector('.progress')const progressBtn = document.querySelector('.progress-btn')const progressWrapperWidth = 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 // 通过当前位置与初始位置之差计算改变的距离    let btnLeftStyle = btnLeft + diffX // 为按钮定义新的left值    touch.target.style.left = btnLeftStyle + 'px'    progress.style.width = (btnLeftStyle / progressWrapperWidth) * 100 + '%' // 通过按钮的left值与进度条容器长度的比值,计算进度条的长度百分比})

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

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

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

相关推荐:

HTML5 video视频字幕的使用和制作方法

HTML5中audio与video标签的使用

以上就是HTML5触摸事件实现移动端简易进度条的实现方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1546063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 17:48:43
下一篇 2025年12月21日 17:48:55

相关推荐

  • HTML5声音录制/播放功能的实现代码

    这篇文章主要介绍了关于html5声音录制/播放功能的实现代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 html代码: 火星黑洞 var recorder; var audio = document.querySelector(‘audio’); function startRe…

    好文分享 2025年12月21日
    000
  • HTML 文字的左右来回移动

    这篇文章介绍的内容是HTML 文字的左右来回移动  ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下   HTML marquee 元素() 用来插入一段滚动的文字。你可以使用它的属性控制当文本到达容器边缘发生的事情。behavior:        设置文本在 marquee 元素内…

    2025年12月21日
    000
  • HTML5中audio与video标签的使用

    这篇文章主要介绍了关于HTML5中audio与video标签的使用 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 最近做的微信分享页面中有大量的语音播放和视频展示,相关的好多方法属性以前都没接触过,现在记录下来! 1.  首先,了解关于两个标签的基本信息: 两个标签的基本属性: 属…

    好文分享 2025年12月21日
    000
  • HTML5的video标签操作视频详解

    这次给大家带来HTML5的video标签操作视频详解,HTML5的video标签操作视频的注意事项有哪些,下面就是实战案例,一起来看一下。 在现在对于网站制作的研究中,各方面的人员使用没有停止过,一直在不停的专研,其中HTML5的使用就是很大的一突破,对于HTML5的video标签相信很多人还不知道…

    好文分享 2025年12月21日
    000
  • H5的video标签操作摄像头

    这次给大家带来H5的video标签操作摄像头,H5的video标签操作摄像头注意事项有哪些,下面就是实战案例,一起来看一下。 详解HTML5 使用video标签实现选择摄像头功能 1. html // jquery reference // // Open WebCam Snap Photo 2. …

    好文分享 2025年12月21日
    000
  • H5+C3+JS实现楼层跳跃特效

    这次给大家带来H5+C3+JS实现楼层跳跃特效,H5+C3+JS实现楼层跳跃特效的注意事项有哪些,下面就是实战案例,一起来看一下。 楼层跳跃式的页面布局 *{ margin: 0; padding: 0; } body, html{ height: 100%; } ul{ list-style: n…

    好文分享 2025年12月21日
    000
  • H5链接的使用

    这次给大家带来H5链接的使用,H5链接使用的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML链接算是一个HTML文档活力的表现,只因HTML链接才能让整个HTML文档更加灵活,可以任意跳转,查找自己喜欢的内容。 HTML 使用超级链接与网络上的另一个文档相连。几乎可以在所有的网页中找到链接…

    2025年12月21日
    000
  • H5的文本格式化使用方法

    这次给大家带来H5的文本格式化使用方法,H5文本格式化使用的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML文本格式化对于我们编写HTML文档也是非常重要的,各种各样的样式都需要使用到文本格式化,具体什么效果呢? 加粗文本斜体文本电脑自动输出这是 下标 和 上标 有次可以看出其效果以及作用…

    好文分享 2025年12月21日
    000
  • 深入了解HTML5 Canvas标签的基本用法

    这篇文章介绍的内容是深入了解HTML5 Canvas标签的基本用法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 基本用法 使用 标签在页面上创建画布元素,画布一旦创建,就可以使用Javascript提供的一套强大的Canvas API编写代码,在画布中绘制任意图形,甚至加入高级动画…

    2025年12月21日
    000
  • 深入了解HTML5之sessionStorage对象

    这篇文章介绍的内容是深入了解HTML5之sessionStorage对象,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 HTML5 sessionStorage会话存储 sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗…

    2025年12月21日 好文分享
    000
  • 基于 HTML5 Canvas 实现的文字动画特效

    这次的这篇文章给大家分享的内容是基于 html5 canvas 实现的文字动画特效,非常的而是用,有需要的朋友可以用来参考一下 前言 文字是网页中最基本的元素,一般我们在网页上都是展示的静态文字,但是就效果来说,还是比较枯燥的。文字淡入淡出的动画效果在项目中非常实用,如果有某些关键的文字,可以通过这…

    2025年12月21日
    000
  • HTML5实现拖拽功能步骤详解

    这篇文章主要介绍了HTML5实现拖拽功能步骤详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 问题:突然奇想,想在电影网上加一个收藏(类似于购物车的东西),可以通过拖拽图片进行添加 前提:需要了解HTML5中国Loacl Strorage(当然,其他的web存储也行,…

    好文分享 2025年12月21日
    000
  • HTML5调用移动浏览器相机问题

    因为浏览器和微信浏览器区别,导致直接使用capture=”camera”,浏览器会调用相机。解决方案,就是在组件加载时候,判断一下内核 代码如下 头像 @@##@@ @@##@@ import { USER_DEFAULT_BASE64, HEAD_IMAGE_SIZE_TO_BIG} from ‘…

    好文分享 2025年12月21日
    000
  • 实例详解Html5的背景应用

    这篇文章主要介绍了浅谈Html5的背景属性,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 1、背景属性复习:background-imagebackground-colorbackground-repeatbackground-positionbackground-at…

    2025年12月21日
    000
  • 详解HTML5 表单属性

    今天本文主要和大家详细介绍HTML5的表单属性,需要的朋友可以参考下,希望能帮助到大家。 表单事件: oninput:当用户输入的时候触发。oninvalid:当验证未通过时触发。 demo.html: Documentform { width: 100%; max-width: 640px; mi…

    好文分享 2025年12月21日
    000
  • 9个经典华丽的html5图表应用

    提及图表应用,用HTML5和jQuery制作的网页图表更加方便和使用,而且无论是功能还是外观,定制起来都比较灵活。本文就向大家分享9个经典华丽的HTML5图表应用,也许对你的前端开发会有帮助,一起来看看吧。 1、超酷HTML5 Canvas图表应用Chart.js 今天我们要介绍一款基于HTML5 …

    2025年12月21日 好文分享
    000
  • 关于HTML5的知识小结

    本文给大家带来关于HTML5的知识小结,需要的朋友可以参考下,希望能帮助到大家。下面跟随小编一起来看一下吧。 一:移动开发知识点 一. 使用rem作为单位 html { font-size: 100px; } @media(min-width: 320px) { html { font-size: …

    好文分享 2025年12月21日
    000
  • h5+js实现本地文件读取和写入

    这次给大家带来h5+js实现本地文件读取和写入,h5+js实现本地文件读取和写入的注意事项有哪些,下面就是实战案例,一起来看一下。 代码如下: 读取本地文件 Document //点击导入按钮,使files触发点击事件,然后完成读取文件的操作 $(“#fileImport”).click(funct…

    好文分享 2025年12月21日
    000
  • HTML5联合canvas实现图片压缩

    这次给大家带来html5联合canvas实现图片压缩,主要以代码的形式体现,下面就是实战案例,一起来看一下。 lianxi 名字: 上传: button var file = document.querySelector(‘#fileimage’) var username = document.q…

    好文分享 2025年12月21日
    000
  • HTML5之网页存储

    这次给大家带来HTML5之网页存储 ,HTML5之网页存储 的注意事项有哪些,下面就是实战案例,一起来看一下。 html5 网页存储 web storage 一、认识Web Storage Web Storage是一种将少量数据存储在客户端(client)磁盘的技术。只要支持WebStorage A…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信