第一部分:四个touch事件

1.touchstart:只要将手指放在了屏幕上(而不管是几只),都会触发touchstart事件。
2.touchmove: 当我们用手指在屏幕上滑动时,这个事件会被连续触发。 如果我们不希望页面随之滑动,我们可以使用event的preventDefault来阻止这个默认行为。
3.touchend: 当手指滑动后离开屏幕,这时就触发了touchend事件。
4.touchcancel: 系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用。
第二部分:四个touch对象
1. touches,这是一个类数组对象,包含了所有的手指信息,如果只有一个手指,那么我们用touches[0]来表示。
2. targetTouches 。 手指在目标区域的手指信息。
3. changedTouches:最近一次触发该事件的手指信息。
4. touchend时,touches与targetTouches信息会被删除,changedTouches保存的最后一次的信息,最好用于计算手指信息。
第三部分:实例1
先看效果图:
它的实现原理非常简单,就是将红色圆形的postion属性设为absolute,然后,当我们滑动它时,就触发了touchmove事件,将其Left和top设置为event的pageX和pageY即可,为保证触发中心与圆心在同一位置,只需将pageX加上width的一半,pageY加上height的一半。
源码如下:
<!DOCTYPE html>
<html>
<head>
<title>touchExample</title>
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<style>
#touchDiv{
position: absolute;
width: 50px;
height: 50px;
top: 20px;
left: 20px;
text-align: center;
line-height: 50px;
color:white;
border-radius: 50%;
background-color: red;
}
</style>
</head>
<body>
<div id="touchDiv">点我</div>
<script>
var touchDiv = document.getElementById("touchDiv");
var x,y;
touchDiv.addEventListener("touchstart",canDrag);
touchDiv.addEventListener("touchmove",drag);
touchDiv.addEventListener("touchend",nodrag);
function canDrag (e) {
console.log("god开始");
}
function drag (e) {
$("#touchDiv").css("left",e.touches[0].pageX-25);
$("#touchDiv").css("top",e.touches[0].pageY-25);
}
function nodrag () {
console.log("god结束");
}
</script>
</body>
</html>
第四部分:实例2
这个实例就是下拉刷新功能的实现,效果如下:
源码如下:
<!DOCTYPE html>
<html>
<head>
<title>下拉刷新</title>
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<style>
*{
margin:0;
padding: 0;
font-size:15px;
}
.header{
height: 50px;
line-height: 50px;
text-align: center;
background-color: blue;
color:white;
font-size: 23px;
}
.drag_to_refresh{
align-items: center;
padding-left: 155px;
background-color: #bbb;
color:yellow;
display: none;
}
.refresh{
height: 50px;
line-height: 50px;
text-align: center;
background-color: #bbb;
color: green;
display: none;
}
.drag{
text-align: center;
background-color: lightgray;
position: relative;
padding:20px;
text-indent: 1em;
line-height: 30px;
font-size:18px;
}
</style>
</head>
<body>
<div class="header">政务云</div>
<div class="drag_to_refresh"></div>
<div class="refresh">刷新中...</div>
<div class="drag">电子政务云(E-government cloud)属于政府云,结合了云计算技术的特点,对政府管理和服务职能进行精简、优化、整合,并通过信息化手段在政务上实现各种业务流程办理和职能服务,为政府各级部门提供可靠的基础IT服务平台。</div>
<script>
window.onload = function () {
var initX;
var drag_content = document.querySelector(".drag");
var drag_to_refresh = document.querySelector(".drag_to_refresh");
var refresh = document.querySelector(".refresh");
drag_content.addEventListener("touchmove",drag);
drag_content.addEventListener("touchstart",dragStart);
drag_content.addEventListener("touchend",dragEnd);
function dragStart(e){
initY = e.touches[0].pageY;
console.log(initX);
}
function drag (e){
drag_to_refresh.style.display = "block";
drag_to_refresh.style.height = (e.touches[0].pageY - initY) + "px";
console.log(drag_to_refresh.style.height);
if(parseInt(drag_to_refresh.style.height)>=100){
// 注意:因为height得到的值是px为单位,所以用parseInt解析
drag_to_refresh.style.height = "100px";
if(parseInt(drag_to_refresh.style.height)>80){
drag_to_refresh.style.lineHeight = drag_to_refresh.style.height;
drag_to_refresh.innerHTML = "松开刷新";
}
}
}
function dragEnd (e){
if(parseInt(drag_to_refresh.style.height)>80){
refresh.style.display = "block";
setTimeout(reload,1000);
}
drag_to_refresh.style.display = "none";
}
function reload () {
location.reload();
}
}
</script>
</body>
</html>
以上所述是小编给大家介绍的移动端touch实现下拉刷新功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# touch实现下拉刷新
# android实现下拉刷新
# 安卓(Android)实现3DTouch效果
# Android判断touch事件点是否在view范围内的方法
# 30分钟搞清楚Android Touch事件分发机制
# Android中处理apple-touch-icon详解
# 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详
# Android的Touch事件处理机制介绍
# 当我们
# 小编
# 放在
# 在此
# 只需
# 设为
# 屏幕上
# 将其
# 这是一个
# 给大家
# 只有一个
# 可以使用
# 要将
# 设置为
# 几只
# 用手指
# 所述
# 先看
# 第一部分
# 给我留言
相关文章:
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何快速生成凡客建站的专业级图册?
公众号网站制作网页,微信公众号怎么制作?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
建站之星如何实现网站加密操作?
如何在IIS7上新建站点并设置安全权限?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
如何选择高效便捷的WAP商城建站系统?
如何选择高效可靠的多用户建站源码资源?
临沂网站制作企业,临沂第三中学官方网站?
网站按钮制作软件,如何实现网页中按钮的自动点击?
建站主机选哪家性价比最高?
Swift中swift中的switch 语句
建站之星代理费用多少?最新价格详情介绍
外贸公司网站制作哪家好,maersk船公司官网?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何用腾讯建站主机快速创建免费网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
5种Android数据存储方式汇总
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
,想在网上投简历,哪几个网站比较好?
建站主机如何选?高性价比方案全解析
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何通过万网虚拟主机快速搭建网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站之星多图banner生成与模板自定义指南
建站之星上传入口如何快速找到?
如何自定义建站之星网站的导航菜单样式?
已有域名如何快速搭建专属网站?
如何快速查询网站的真实建站时间?
小建面朝正北,A点实际方位是否存在偏差?
公司门户网站制作流程,华为官网怎么做?
自助网站制作软件,个人如何自助建网站?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
教学网站制作软件,学习*后期制作的网站有哪些?
如何通过老薛主机一键快速建站?
如何基于云服务器快速搭建个人网站?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
太原网站制作公司有哪些,网约车营运证查询官网?
如何打造高效商业网站?建站目的决定转化率
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何在云服务器上快速搭建个人网站?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何挑选高效建站主机与优质域名?
招商网站制作流程,网站招商广告语?
广州商城建站系统开发成本与周期如何控制?
如何高效配置IIS服务器搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。