Android开发中如何使用触摸实现移动端的下拉刷新功能

  介绍

今天就跟大家聊聊有关Android开发中如何使用触摸实现移动端的下拉刷新功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1。touchstart:只要将手指放在了屏幕上(而不管是几只),都会触发touchstart事件。

2。touchmove:当我们用手指在屏幕上滑动时,这个事件会被连续触发。如果我们不希望页面随之滑动,我们可以使用事件的preventDefault来阻止这个默认行为。

3。touchend:当手指滑动后离开屏幕,这时就触发了touchend事件。

4。touchcancel:系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用。

,1. 触摸,这是一个类数组对象,包含了所有的手指信息,如果只有一个手指,那么我们用触摸[0]来表示。

,2. targetTouches。手指在目标区域的手指信息。

,,,,3.changedTouches:最近一次触发该事件的手指信息。

,,,,4. touchend时,触摸与targetTouches信息会被删除,changedTouches保存的最后一次的信息,最好用于计算手指信息。

先看效果图:

 Android开发中如何使用触摸实现移动端的下拉刷新功能

它的实现原理非常简单,就是将红色圆形的位置属性设为绝对的,然后,当我们滑动它时,就触发了touchmove事件,将其左和上设置为事件的pageX和pageY即可,为保证触发中心与圆心在同一位置,只需将pageX加上宽度的一半,pageY加上高度的一半。

源码如下:

& lt; !DOCTYPE html>   & lt; html>   & lt; head>   & lt; title> touchExample   & lt;元名称=皏iewport"内容=翱矶?设备宽度,user-scalable=不,初始=1.0,最小规模=1.0,最大范围=1.0,比;   & lt;脚本类型=拔谋?javascript"脚本https://www.yisu.com/zixun/src=" http://code.jquery.com/jquery-latest.js ">   <时尚>   # touchDiv {   位置:绝对的;   宽度:50 px;   高度:50 px;   上图:20 px;   左:20 px;   text-align:中心;   行高:50 px;   颜色:白色;   这个特性:50%;   背景颜色:红色;   }>   
点我
  <>脚本   var touchDiv=. getelementbyid (“touchDiv”);   var x, y;   touchDiv.addEventListener (“touchstart”, canDrag);   touchDiv.addEventListener (“touchmove”,拖动);   touchDiv.addEventListener (“touchend”, nodrag);   函数canDrag (e) {   console.log(“上帝开始”);   }   函数阻力(e) {   $ (" # touchDiv ") . css(“左”,e.touches [0] .pageX-25);   $ (" # touchDiv ") . css(“顶级”,e.touches [0] .pageY-25);   }   函数nodrag () {   console.log(“上帝结束”);   }>   

这个实例就是下拉刷新功能的实现,效果如下:

 Android开发中如何使用触摸实现移动端的下拉刷新功能

源码如下:

& lt; !DOCTYPE html>   & lt; html>   & lt; head>   & lt; title>下拉刷新& lt;/title>   & lt;元名称=皏iewport"内容=翱矶?设备宽度,user-scalable=不,初始=1.0,最小规模=1.0,最大范围=1.0,比;   & lt; style>   * {   保证金:0;   填充:0;   字体大小:15 px;   }   .header {   高度:50 px;   行高:50 px;   text-align:中心;   背景颜色:蓝色;   颜色:白色;   字体大小:23 px;   }   .drag_to_refresh {   对齐项目:中心;   padding-left: 155 px;   background - color: # bbb;   颜色:黄色;   显示:没有;   }   .refresh {   高度:50 px;   行高:50 px;   text-align:中心;   background - color: # bbb;   颜色:绿色;   显示:没有;   }   .drag {   text-align:中心;   背景颜色:浅灰色;   位置:相对;   填充:20 px;   indent: 1 em;   行高:30 px;   字体大小:18 px;   }   & lt;/style>   & lt;/head>   & lt; body>   & lt; div类=癶eader"祝辞政务云& lt;/div>   & lt; div类=癲rag_to_refresh"祝辞& lt;/div>   & lt; div类=皉efresh"祝辞刷新中…& lt;/div>   & lt; div类=癲rag"祝辞电子政务云(电子政务云)属于政府云,结合了云计算技术的特点,对政府管理和服务职能进行精简,优化,整合,并通过信息化手段在政务上实现各种业务流程办理和职能服务,为政府各级部门提供可靠的基础它服务平台。;/div>   & lt; script>   窗口。onload=function () {   var initX;   var drag_content=document.querySelector (“.drag");   var drag_to_refresh=document.querySelector (“.drag_to_refresh");   var=document.querySelector刷新(“.refresh");   drag_content.addEventListener (“touchmove",拖);   drag_content.addEventListener (“touchstart" dragStart);   drag_content.addEventListener (“touchend",拖动结束);   函数dragStart (e) {   initY=e.touches [0] .pageY;   console.log (initX);   }   函数阻力(e) {   drag_to_refresh.style。显示=癰lock";   drag_to_refresh.style。身高=(e.touches [0]。pageY - initY) +“px";   console.log (drag_to_refresh.style.height);   如果方法(drag_to_refresh.style.height)祝辞=100){//注意:因为高度得到的值是px为单位,所以用方法解析   drag_to_refresh.style。身高=?00 px";   如果方法(drag_to_refresh.style.height)在80年){   drag_to_refresh.style。lineHeight=drag_to_refresh.style.height;   drag_to_refresh。innerHTML=八煽⑿隆?   }   }   }   函数拖动结束(e) {   如果方法(drag_to_refresh.style.height)在80年){   refresh.style。显示=癰lock";   setTimeout(重载,1000);   }   drag_to_refresh.style。显示=皀one";   }   函数重载(){   location.reload ();   }   }   & lt;/script>   & lt;/body>   & lt;/html>

Android开发中如何使用触摸实现移动端的下拉刷新功能