手机端页面好多要注意的,点击事件就是其中一个:

在手机端页面中使用 click,安卓手机能正常实现点击效果,可是苹果手机不能点击;用 touchend 代替 click,苹果手机中能点击,但是可能出现小问题。

所以,在进行移动端页面优化时,一般使用 touch 事件替代鼠标相关事件,用的较多的是使用 touchend 事件替代PC端的 click 和 mouseup 事件。

注:在使用 touched 时最好都加上  t.preventDefault();  阻止浏览器默认的后续动作。

接下来记录我使用 touchend 遇到的问题的解决方法:

1、点击后页面自动放大【 IOS 】

具体描述:在 newPlace.html( 选择新地点)页面中,点击建筑、楼层、房间、工位右侧的 input 会弹出遮罩层,选择遮罩层中的相应选项后,会显示在对应建筑、楼层、房间、工位右侧。但是在点击弹出遮罩层时页面会自动放大。

<li class="place_lis area" data-type="area">
<span>建筑</span>
<input type="text" class="control" onfocus="this.blur();">
<img src="../img/chaoxia.png">
</li>

解决方法:使用 preventDefault() 方法,阻止元素发生默认的行为。

$(".control").on('touchend',function(t){
// 点击之后的操作 t.preventDefault(); // 阻止元素发生默认的行为
});

2、页面滑动事件触发 touchend 点击事件【 Android & IOS 】

具体描述:在serviceRequest.html 服务需求页面中滑动查看所有服务需求后,会跳转至需求详情页面。也就是说:在页面滑动完成后,如果当前触点的位置所指的元素绑定了 touchend 事件,这时便会触发该元素的 touchend 事件,造成误操作。

解决方法:在页面滚动时停止 touchend 事件冒泡,这样就可以防止触发 touchend 事件。

$(function(){
stopTouchendPropagation_AfterScroll();
$(document).on('touchend', '.service_cont', function (t) {
window.location.href = "servicePJ_before.html?id=" + $(this).attr('id') + "";
t.preventDefault();
});
});
function stopTouchendPropagation_AfterScroll(){
var locked = false; window.addEventListener('touchmove', function(ev){
locked || (locked = true, window.addEventListener('touchend', stopTouchendPropagation, true));
}, true);
function stopTouchendPropagation(ev){
ev.stopPropagation();
window.removeEventListener('touchend', stopTouchendPropagation, true);
locked = false;
}
}

注:在移动端,scroll 事件是在滚动结束后才会触发一次,而 touchmove 事件是在滑动过程中多次触发,使用 scroll 会比使用 touchmove 在性能上有一定优化。

但是在上面  stopTouchendPropagation_AfterScroll() 函数中,用 touchmove 不用 scroll,是为了使函数适用于小于一个屏幕高度的页面。

移动端——页面点击( touchend -> click)的更多相关文章

  1. 移动端页面-点击input输入框禁止放大效果

    点击input输入框会获取焦点并且放大 解决方法:在项目根目录找到 index.html <meta name="viewport" content="width= ...

  2. 移动端页面中点击input输入框的时候弹出的键盘将输入框挡住的问题

    使用的是vux框架, 以为是框架问题, 后来发现是把当前页面的高度写死为了height:200%: 只要把高度去掉就能让页面自动弹到输入框的上方:

  3. 解决移动端页面滚动后不触发touchend事件

    解决移动端页面滚动后不触发touchend事件 问题 在移动端页面进行优化时,一般使用touch事件替代鼠标相关事件.用的较多的是使用touchend事件替代PC端的click和mouseup事件. ...

  4. WAP页面点击与hover延迟解决之道

    最近一直在WAP端页面的开发,一直都知道wap端点击相关问题存在延迟.之前做的网页大部分使用a链接进行,一直未入此坑. 最近做的一个WAP网站,各种点击,hover事件,如果使用PC端网页的做法,直接 ...

  5. 移动端300ms点击事件的延迟

    移动端click事件300ms延迟 移动端click事件300ms的延迟在目前看来,已经是老生常谈了. 以下内容,我会在参考资源的基础上谈谈我对移动端click事件300ms延迟的一些理解.本人愚昧, ...

  6. 移动端点击(click)事件延迟问题的产生与解决方法

    http://blog.csdn.net/xjun0812/article/details/64919063 问题的发现 上班做项目的时候碰到一个移动端项目,其中有个小游戏,相当于天上掉馅饼,用户需要 ...

  7. 【技术博客】移动端的点击事件与Sticky Hover问题

    目录 移动端的点击事件与Sticky Hover问题 TL;DR 前言 问题描述 背景 实现方式 问题 关于移动端浏览器的点击事件 初次发现问题后各种解决尝试:从点击事件本身下手 cursor: po ...

  8. 移动端页面V2.0项目改版总结

    移动端页面已经进行的第三次改版,这个版本遇到的最大难题就是页面跳转的问题. 项目需求: 页面上有分别有优惠估价.我要估价.历史竞拍这三个Tab选项卡,当用户点击估价,选择品牌以后,前端需要去请求品牌接 ...

  9. 利用websocket实现手机扫码登陆后,同步登陆信息到web端页面

    新手必看 广播系统 事件系统 准备工作 初始化项目 引入 laravel-websockets 软件包 启动 websocket 监听 主要流程 创建两个页面 建立 socket 连接 手机端扫码登陆 ...

随机推荐

  1. swiper按钮点击无效及控制器无效问题

    点击箭头图片切换的同时,下面小图标也会随着切换,同理下面小图标切换时,上面也随着滚动. 示例代码如下: <!-- Swiper --> <div class="swiper ...

  2. 关于NavigationBar的笔记

    1常用几个方法 全局 //设置navigationBar 的类型 ,ps: status bar的状态受navigationbar控制(当用navigationcontroller时,通过设置此属性改 ...

  3. 安卓直连SQLSEVER数据库

    1.导入连接SQLSEVER的jar包:可以支持android的SQL驱动(如:jtds-1.2.7.jar) 2.编写连接数据库的工具类 import java.lang.reflect.Field ...

  4. tomcat压缩配置

    问题描述:HPS打开登录页面(也就是用户输入用户名和密码的页面),要加载数据和程序,大概2M大小,在网络不好的情况下,要10几秒甚至几十秒,公司内网测试需要:3秒多 解决方法: 1. 打开登录页面,用 ...

  5. TCP/IP网络

    1.  简述osi七层模型和TCP/IP五层模型 一.OSI参考模型         今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型.  1.OSI的来源         OSI(Op ...

  6. dl pthread m库的含义

    dl:dlopen dlerror dlclose dlsym等函数的库 m:math.h中声明的库函数,比如log10等 pthread:线程建立函数 参考: Linux 编译C程序遇到依赖libm ...

  7. jmeter非GUI的运行命令

    jmeter 的参数 参数说明: -h 帮助 -> 打印出有用的信息并退出 -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JM ...

  8. PHP获取不到url传递参数中#&等特殊字符解决方法

    有些符号在URL中是不能直接传递的,无法传入PHP处理,比如#&等符号,通过$_GET是获取不到的,比如一个域名https://localhost/url.php?url=yangyufei+ ...

  9. adb连接MUMU模拟器

    参考:http://mumu.163.com/2017/12/19/25241_730476.html?type=notice 通过adb就可以像操作linux一样来看看模拟器的文件什么的,难道刷机就 ...

  10. 后端数据中含有html标签和css样式,前端如何转译展示样式效果。

    后端含有html标签和css样式的数据: domain="<span style='color:red'>www.baidu.com</span>" (vu ...