addEventListener(“ touchstart”)在手机上不起作用

时间:2018-07-22 10:11:42

标签: javascript html dom

简单触摸事件在iPhone或iPad上不起作用,但是在DevTools(带触摸的设备模式)中,一切正常!

我的示例是关于计算器的滑块。

element.addEventListener('touchstart', function(e) {
    var startPoint = window.getComputedStyle(element).getPropertyValue('left'),
        shiftX = e.touches[0].pageX - Number.parseInt(startPoint),
        moveAt = function (e) {
            e.preventDefault();
            if (e.touches[0].pageX < 50) {
                element.style.left = '50' + 'px';
            } else if (e.touches[0].pageX > 330) {
                element.style.left = '330' + 'px';
            } else {
                let accessubleDifX = e.touches[0].pageX - shiftX;

                if (accessubleDifX > 50 || accessubleDifX < 330) {
                    element.style.left = `${accessubleDifX}px`;
                    console.log("imhere");
                }
            }
        };
    moveAt(e);

    document.addEventListener('touchmove', function (e) {
        e.preventDefault();
        moveAt(e);
        counting();
    });

    document.addEventListener('touchend', function () {
        document.removeEventListener('touchmove', null);
        element.removeEventListener('touchstart', null);
    });
})

0 个答案:

没有答案