写scalajs,习惯了阻止所有事件的默认行为,在写轮播图的时候,给轮播图的父元素同时加上touch事件和click事件,click事件不会执行
参考贴:移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法
移动端上点击屏幕时,会依次触发touchstart,touchmove,touchend,click事件。
正确的触发过程应该是:
touchstart->touchmove->touchend 或者
touchstart->touchend->click
在touchmove中加入如下代码:
var w = x<0?x*-1:x; //x轴的滑动值
var h = y<0?y*-1:y; //y轴的滑动值
if(w>h){ //如果是在x轴中滑动
event.preventDefault();
}
网友评论