【发布时间】:2016-02-22 11:03:09
【问题描述】:
我构建了一个处理 touchstart、touchend 和 touchmove 事件的滑块。
它在 Android 和 iOS 上运行良好。
只有当我将 iOS 上的手指慢慢移出屏幕时,touchend 事件才会触发。
在我将手指放回屏幕后,touchend 事件立即触发,但不是触摸开始。
有人知道为什么 touchend 事件不会触发吗?
我搜索了几个小时才找到解决方案。
我试过touchcancel,但没有帮助。
Javascript:
this.element = document.createElement('div');
this.element.classList.add('slider');
parent.appendChild(this.element);
//other stuff
this.element.addEventListener('touchstart', ()=> {
console.log('start');
});
this.element.addEventListener('touchend', ()=> {
console.log('end');
});
this.element.addEventListener('touchmove', ()=> {
console.log('move');
});
css:
.slider{
display: block;
position: relative;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
编辑#1
我也试过gestureend,但没有帮助。
我发现只有当我使用主页按钮滑动到一侧时它才不会触发(我处于横向模式)。
【问题讨论】:
标签: javascript ios touch dom-events