专栏名称: JavaScript
面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享。
目录
相关文章推荐
51好读  ›  专栏  ›  JavaScript

移动端点击态的处理

JavaScript  · 公众号  · Javascript  · 2017-01-12 11:26

正文

在开发移动端页面的时候,为了提高用户体验,通常会给被触控的元素加上一个效果来对用户的操作进行反馈。

这种反馈主要有三种实现方式:

伪类:active 
伪类是一种比较方便的实现方式,但在ios中,需要在相关的元素或者body上绑定touchstart事件才能使元素的:active生效。

By default, Safari Mobile does not use the :active state unless there is a touchstart event handler on the relevant element or on the .—MDN

  1. document.body.addEventListener('touchstart', function (){});

也可以直接在body上添加

  1. touchstart>

  2.    

此外,由于移动端300ms延迟问题,触摸反馈会有延迟,可以使用Fastclick解决。

webkit-tap-highlight-color 
这个属性并不是标准的,被用于设置超链接被点击时高亮的颜色,在ios设备上表现为一个半透膜的灰色背景,可以设置-webkit-tap-highlight-color为任何颜色,例如rgba(0,0,0,0.5),如果未设置颜色的alpha值,将使用默认的透明度,alpha为0时,将禁用高亮,alpha为1时,元素在点击时将不可见 
大部分安卓设备也支持这个属性,但是显示的效果不同,表现为一个边框,-webkit-tap-highlight-color的值为边框的颜色

touch事件 
原理就是touchstart时,给元素添加className,touchstend时移除className

  1. data-touch="true">
  2. 点我

推荐文章
雷峰网  ·  微信如何绞杀网络赌博?
8 年前
雷峰网  ·  微信如何绞杀网络赌博?
8 年前
亿邦动力  ·  又一个电商CEO离职
7 年前
精明常旅客  ·  “常旅客”关键字治丧委员会
7 年前