移动设备、手机浏览器Javascript滑动事件代码

实现响应式网站的手机页面滑动效果 触摸事件(Touch events)是响应用户触摸屏幕的一系列动作的事件。这些事件包括触摸屏上点、移动和取消(移除)的动作。基本的触摸事件类型有touchstarttouchmovetouchend和。这些事件可以帮助开发者创建出响应用户手指操作的应用或网页,从而改善用户体验。 阅读详情

以下经过本人测试成功。

测试平台:三星S5830I

操作系统:Android 2.3.6

浏览器:UC浏览器

HTML标准:HTML5

 

测试了三个事件:touchstart、touchmove 和 touchend,并获取了触摸时触点在页面上的坐标,根据坐标进行了左右滑动、上下滑动判断。

代码如下:

[html]  view plain copy
  1. <!-- HTML5 -->  
  2. <!DOCTYPE html>  
  3. <html>  
  4.     <head>  
  5.         <title>TouchEvent测试</title>  
  6.         <meta charset="gbk">  
  7.     </head>  
  8.     <body>  
  9.         <h2>TouchEvent测试</h2>  
  10.         <br />  
  11.         <div id="version" style="border:2px solid black;background-color:yellow"></div>  
  12.         <br />  
  13.         <br />  
  14.         <br />  
  15.         <br />  
  16.         <br />  
  17.         <br />  
  18.         <div id="result" style="border:2px solid red; color:red;">未触发事件!</div>  
  19.         <div id="test" style="border:2px solid red">  
  20.             <ul>  
  21.                 <li id="li1">测试条目1</li>  
  22.                 <li id="li2">测试条目2</li>  
  23.                 <li id="li3">测试条目3</li>  
  24.                 <li id="li4">测试条目4</li>  
  25.                 <li id="li5">测试条目5</li>  
  26.                 <li id="li6">测试条目6</li>  
  27.                 <li id="li7">测试条目7</li>  
  28.                 <li id="li8">测试条目8</li>  
  29.                 <li id="li9">测试条目9</li>  
  30.                 <li id="li10">测试条目10</li>  
  31.                 <li id="li11">测试条目11</li>  
  32.                 <li id="li12">测试条目12</li>  
  33.                 <li id="li13">测试条目13</li>  
  34.                 <li id="li14">测试条目14</li>  
  35.                 <li id="li15">测试条目15</li>  
  36.                 <li id="li16">测试条目16</li>  
  37.                 <li id="li17">测试条目17</li>  
  38.                 <li id="li18">测试条目18</li>  
  39.                 <li id="li19">测试条目19</li>  
  40.                 <li id="li20">测试条目20</li>  
  41.             </ul>  
  42.         </div>  
  43.           
  44.         <script type="text/javascript">  
  45.             //全局变量,触摸开始位置  
  46.             var startX = 0, startY = 0;  
  47.               
  48.             //touchstart事件  
  49.             function touchSatrtFunc(evt) {  
  50.                 try  
  51.                 {  
  52.                     //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等  
  53.   
  54.                     var touch = evt.touches[0]; //获取第一个触点  
  55.                     var x = Number(touch.pageX); //页面触点X坐标  
  56.                     var y = Number(touch.pageY); //页面触点Y坐标  
  57.                     //记录触点初始位置  
  58.                     startX = x;  
  59.                     startY = y;  
  60.   
  61.                     var text = 'TouchStart事件触发:(' + x + ', ' + y + ')';  
  62.                     document.getElementById("result").innerHTML = text;  
  63.                 }  
  64.                 catch (e) {  
  65.                     alert('touchSatrtFunc:' + e.message);  
  66.                 }  
  67.             }  
  68.   
  69.             //touchmove事件,这个事件无法获取坐标  
  70.             function touchMoveFunc(evt) {  
  71.                 try  
  72.                 {  
  73.                     //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等  
  74.                     var touch = evt.touches[0]; //获取第一个触点  
  75.                     var x = Number(touch.pageX); //页面触点X坐标  
  76.                     var y = Number(touch.pageY); //页面触点Y坐标  
  77.   
  78.                     var text = 'TouchMove事件触发:(' + x + ', ' + y + ')';  
  79.   
  80.                     //判断滑动方向  
  81.                     if (x - startX != 0) {  
  82.                         text += '<br/>左右滑动';  
  83.                     }  
  84.                     if (y - startY != 0) {  
  85.                         text += '<br/>上下滑动';  
  86.                     }  
  87.   
  88.                     document.getElementById("result").innerHTML = text;  
  89.                 }  
  90.                 catch (e) {  
  91.                     alert('touchMoveFunc:' + e.message);  
  92.                 }  
  93.             }  
  94.   
  95.             //touchend事件  
  96.             function touchEndFunc(evt) {  
  97.                 try {  
  98.                     //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等  
  99.   
  100.                     var text = 'TouchEnd事件触发';  
  101.                     document.getElementById("result").innerHTML = text;  
  102.                 }  
  103.                 catch (e) {  
  104.                     alert('touchEndFunc:' + e.message);  
  105.                 }  
  106.             }  
  107.   
  108.             //绑定事件  
  109.             function bindEvent() {  
  110.                 document.addEventListener('touchstart', touchSatrtFunc, false);  
  111.                 document.addEventListener('touchmove', touchMoveFunc, false);  
  112.                 document.addEventListener('touchend', touchEndFunc, false);  
  113.             }  
  114.   
  115.             //判断是否支持触摸事件  
  116.             function isTouchDevice() {  
  117.                 document.getElementById("version").innerHTML = navigator.appVersion;  
  118.   
  119.                 try {  
  120.                     document.createEvent("TouchEvent");  
  121.                     alert("支持TouchEvent事件!");  
  122.   
  123.                     bindEvent(); //绑定事件  
  124.                 }  
  125.                 catch (e) {  
  126.                     alert("不支持TouchEvent事件!" + e.message);  
  127.                 }  
  128.             }  
  129.   
  130.             window.onload = isTouchDevice;  
  131.     </script>  
  132.     </body>  
  133. </html>  

 

下面是jQuery Mobile实现上下滑动的方式:

jQuery Mobile左右滑动事件:swipe(水平滑动30px以上时触发)、swipeLeft(向左滑)、swipeRight(向右滑)

jQuery Mobile垂直滑动事件:scrollstart(上下滚动)、scrollend(滚动停止)

jQuery Mobile触摸点击事件:tap(快速触碰)、taphold(触碰并保持750ms以上触发)

 

[html]  view plain copy
  1. <!DOCTYPE html>  
  2. <html>  
  3.     <head>  
  4.         <title>Ajax测试</title>  
  5.         <meta charset="gbk">  
  6.         <meta name="viewport" content="width=device-width, initial-scale=1">  
  7.         <link rel="stylesheet" href="jquery-mobile/jquery.mobile-1.2.0.min.css"/>  
  8.         <link rel="stylesheet" href="jquery-mobile/jquery.mobile.structure-1.2.0.min.css"/>  
  9.         <script src="jquery-mobile/jquery-1.8.2.min.js"></script>  
  10.         <script src="jquery-mobile/jquery.mobile-1.2.0.min.js"></script>  
  11.     </head>  
  12.     <body>  
  13.         <div data-role="page" data-theme="b">  
  14.         <div data-role="header"></div>  
  15.         <div data-role="content">  
  16.             <script>  
  17.                 //scrollstart事件  
  18.                 function scrollstartFunc(evt) {  
  19.                     try  
  20.                     {  
  21.                         var target = $(evt.target);  
  22.                         while (target.attr("id") == undefined) {  
  23.                             target = target.parent();  
  24.                         }  
  25.                         //获取触点目标id属性值  
  26.                         var targetId = target.attr("id");  
  27.   
  28.                         alert("targetId: " + targetId);  
  29.                     }  
  30.                     catch (e) {  
  31.                         alert('myscrollfunc:' + e.message);  
  32.                     }  
  33.                 }  
  34.   
  35.                 function myinit() {  
  36.                     //绑定上下滑动事件  
  37.                     $("#myul").bind('scrollstart', function () { scrollstartFunc(event); });  
  38.                 }  
  39.   
  40.                 window.onload = myinit;  
  41.             </script>  
  42.   
  43.             <!-- listview测试 -->  
  44.             <ul id="myul" data-role="listview" data-inset="true">  
  45.                 <li data-role="list-divider">信息列表</li>  
  46.                 <li id="li1" data-role="fieldcontain">信息1</li>  
  47.                 <li id="li2" data-role="fieldcontain">信息2</li>  
  48.                 <li id="li3" data-role="fieldcontain">信息3</li>  
  49.                 <li id="li4" data-role="fieldcontain">信息4</li>  
  50.                 <li id="li5" data-role="fieldcontain">信息5</li>  
  51.                 <li id="li6" data-role="fieldcontain">信息6</li>  
  52.                 <li id="li7" data-role="fieldcontain">信息7</li>  
  53.                 <li id="li8" data-role="fieldcontain">信息8</li>  
  54.                 <li id="li9" data-role="fieldcontain">信息9</li>  
  55.                 <li id="li10" data-role="fieldcontain">信息10</li>  
  56.             </ul>  
  57.         </div>  
  58.     </body>  
HTML5手机端淘宝手指滑动验证登录代码.zip HTML5手机端淘宝手指滑动验证登录代码,向右滑动解锁。 立即下载

相关推荐

滑块验证码 仅支持移动手机端

滑块验证码,拖拽效果,拖拽滑动验证码,从左边拖拽到右边实现验证。 仅支持移动手机端

拖动滑块验证HTML

拖动滑块验证HTML

wanmcandhtml的博客 1540

端侧部署与优化:让 AI 真正走进现实生活的关键技术

AI 的开发流程分为 “训练” 与 “推理” 两大阶段。在训练阶段,科研人员依托云端海量数据和高性能 GPU 算力,构建出精度优异的 AI 模型 —— 比如能识别 1000 种物体的图像分类模型、能理解人类语言的自然语言处理模型。但这些在云端 “战绩斐然” 的模型,若直接应用到现实场景中,却会面临三大 “落地困境”。从云端到端侧,从模型压缩到硬件适配,端侧部署与优化技术解决了 AI 落地的核心难题,让 AI 不再是实验室里的 “高精尖技术”,而是融入日常生活的 “实用工具”。

m0_63477749的博客 1053

一个简易的滑动验证解锁

1.html: &lt;div class="drag"&gt; &lt;div class="bg"&gt;&lt;/div&gt; &lt;div class="text" onselectstart="return false;"&gt;请拖动滑块解锁&am

夏微凉秋微暖的博客 2807

深度学习—各种卷积

深度学习之各种卷积了解知识

m0_47005029的博客 3115

Unity Shader学习笔记/Urp/水墨风效果

Unity Shader学习

qq_63133691的博客 2119

html滑动验证,html5移动端按住滑块拖动验证代码

特效描述:html5移动端 按住滑块拖动 拖动验证代码。js html5适用于移动端的按住滑块拖动验证成功效果代码。请用手机打开查看演示代码结构1. 引入CSS2. 引入JS3. HTML代码请在移动端查看效果pc端无法拖拽还原验证结果:还原验证结果:var btn1 = document.getElementById("btn1");var btn2 = document.getElementB...

weixin_32566515的博客 1994

【深度学习-番外1】Win10系统搭建VSCode+Anaconda+Pytorch+CUDA深度学习环境和框架全过程

本文将介绍在Windows 10系统下搭建深度学习环境的完整过程,包括安装Anaconda、CUDA、NVIDIA显卡驱动以及Pytorch框架。后续本专栏的Python语言下的深度学习环境都以本篇搭建的为准。

fengzhuqiaoqiu的博客 4003

阻止移动端H5开发浏览器默认左右滑动行为

Touch事件小知识 1.避免点击300ms延迟 css: *{ touch-action: manipulation;} 正题:如何解决H5移动端开发浏览器默认左右滑动事件 在进行移动端开发时,由于浏览器自带的滑动行为,使手指只要左右滑动页面就可以上一页,下一页的跳转,体验可以说是十分的不好。为了解决这个问题,我在网上进行了一番搜索以及一番尝试得出了下面两种方法。现在就下...

qq_37028216的博客 2万+

Claude Code长期记忆:优雅的上下文管理

ClaudeCode的上下文管理系统采用三层架构设计,通过智能压缩和优化策略在记忆容量与性能间取得平衡。系统包含短期记忆(高速工作区)、中期记忆(智能蒸馏器)和长期记忆(持久化知识库)。当Token使用率达到92%阈值时启动wU2压缩器,采用8段式结构化摘要保留关键信息,并配合智能文件恢复和渐进式预警机制。该系统通过分层处理、优雅降级和透明化交互,为AI应用提供了高效可靠的上下文管理方案,展现了在有限资源下实现智能记忆的艺术。

m0_53117338的博客 3820

对单周期 RISC-V 处理器进行扩展

对单周期 RISC-V 处理器进行扩展

xiaoxian666的博客 1483

【jQueryMobile】使用jQueryMobile实现滑动翻页的效果

滑动手势在移动设备是很流行的,在移动设备中滑动翻页中很常见 虽然这个功能可以在jQueryMobile中实现,但是个人与之前写的《【jQuery】论手机浏览器中拖拽动作的艰难性》(点击打开链接)中的观点一直,由于这是在手机浏览器中浏览,而不是安卓的一个独立APP,所以不要经常除点击以外的移动设备手势,以免跟手机浏览器与手机系统本身的手势发生冲突。 那么,使用jQueryMobile实现滑动翻页

编程记录,亲测有效 5882

利用VS2019编写安卓APP的步骤和所遇问题的解决办法

遇到了代码错误,这个可以将鼠标箭头置于错误代码处,这样VS2019给你解决办法,给的方法不能解决,并且读了程序都没有问题,那么你应该重启软件,这样还是不能解决,你尝试重新生成解决方案,还是不能解决有可能是运用的代码与当前版本不相符和、过时了,这个时候应当运用相应版本的代码。注:VS2019编写APP的空间不是很稳定,当你写的代码没有问题,但是出现了报错,可能是空间崩溃了,这个时候可以重启软件。点击“+”号,创建密钥存储,输入“别名”、“密码”、以及下面中的任意一项,直至红色框消失后。

youbestcando的博客 7815

JavaScript原生仿移动设备滑动事件

function arrowEvent() { var left = document.getElementById("leftArrow"); var right = document.getElementById("rightArrow"); taskBox = document.getElementById("taskBox"); nowScroll = taskB...

LaoYe的博客 240

万字长文带你由浅入深夯实ARM汇编基础——汇编指令及寻址方式最全梳理(附示例)!

见到汇编就害怕?读完这篇,扫除汇编拦路虎!!(示例丰富,可做手册,随手查阅!)

车载系统攻城狮 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python手机触屏代码_JS移动客户端--触屏滑动事件及js手机拖拽效果

移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成。但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件。处理touch事件能跟踪到屏幕滑动的每根手指。以下是四种touch事件touchstart: //手指放到屏幕上时触发touchmove: //手指在屏幕上滑动式触发touchend: //手指...

weixin_39655160的博客 436

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

用HTML和javascript(JS)计算触屏手机手指滑动方向的演示

原文:http://www.cnblogs.com/liughost/archive/2014/09/02/3951949.html 移动终端的流行,程序员希望通过HTML+JS完成触屏动作的识别。下面给出具体实现的例子,供大家参考。 将下面的代码复制并保存,用手机访问,现在的手机浏览器一般都支持触屏,针对本演示来讲就是支持三个js事件: 1、touchstart---手指开始触

good8888job的博客 689

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

手机html拖拽,JS移动客户端--触屏滑动事件及js手机拖拽效果

移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成。但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件。处理touch事件能跟踪到屏幕滑动的每根手指。以下是四种touch事件touchstart: //手指放到屏幕上时触发touchmove: //手指在屏幕上滑动式触发touchend: //手指...

weixin_42160424的博客 644
上一篇: Ubuntu下Postgresql-8.4安装及配置
下一篇: 浏览器获取宽高
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值