今天在移动端开发的过程中,遇到了一个很常见的bug,需求是点击按钮展开菜单内容,再次点击或者点击任意其他内容收进原来样子,在pc,安卓可以正常使用,但是在ios端点击body不生效,在网上也搜集了一些大家的解决方法。
首先看下小例子:
这个例子中在正常的pc和安卓显示中可以实现,但是在ios中显示有问题,因为IOS浏览器的window、document、body并不接受click事件,按钮和链接才接受click事件。
有网友说直接给body加cursor:pointer;属性,经过尝试好像并不行。当然换个思路想,可以给整屛加个遮罩层,点击遮罩层来实现,这个是可以的,这里不做深究。
最终在多次尝试下,找到比较实用的方法;
这个方法很适用,而且不难理解,主要是事件绑定和阻止冒泡。