css如何实现移动端点击态处理


小编给大家分享一下css如何实现移动端点击态处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、伪类:active

:active伪类常用于设定点击状态下或其他被激活状态下一个链接的样式。最常用于锚点<a href="#">这种情况,一般主流浏览器下也支持其他元素,如button等。在多按键的鼠标系统中,:active只适用于主按键,目前的大部分情况都是左键即主键。

该伪类下定义的CSS样式只在按下鼠标按钮与释放鼠标按钮之间的短暂瞬间被触发显示。使用键盘的tab键也可以触发:active状态。

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

Bydefault,SafariMobiledoesnotusethe:activestateunlessthereisatouchstarteventhandlerontherelevantelementoronthe.―MDN
document.body.addEventListener('touchstart',function(){});

也可以直接在body上添加

<bodytouchstart><!--...--></body>

此外,由于移动端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事件

当用户手指放在移动设备在屏幕上滑动会触发的touch事件。原理就是touchstart时,给元素添加classNametouchstend时移除className

<!--省略--><lidata-touch="true">点我</li><!--省略--><script>document.body.addEventListener('touchstart',function(e){vartarget=e.targetif(target.dataset.touch==='true'){target.classList.add('active')}})document.body.addEventListener('touchmove',function(e){vartarget=e.target,rect=target.getBoundingClientRect()if(target.dataset.touch==='true'){//移出元素时,取消active状态if(e.changedTouches[0].pageX<rect.left||e.changedTouches[0].pageX>rect.right||e.changedTouches[0].pageY<rect.top||e.changedTouches[0].pageY>rect.bottom){target.classList.remove('active')}}})document.body.addEventListener('touchcancel',function(e){vartarget=e.targetif(target.dataset.touch==='true'){target.classList.remove('active')}})document.body.addEventListener('touchend',function(e){vartarget=e.targetif(target.dataset.touch==='true'){target.classList.remove('active')}})</script>

以上是“css如何实现移动端点击态处理”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注主机评测网行业资讯频道!


上一篇:HTML如何使段落的首字母浮动于左侧

下一篇:css如何实现修改对应文件代码


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器