listerner событий касания не работает внутри iframe - PullRequest
0 голосов
/ 09 января 2020

Я добавил жест к своему html сайту, используя этот код:

var touchsurface = document.getElementsByTagName('html')[0],
        startX,
        startY,
        dist,
        threshold = 150, //required min distance traveled to be considered swipe
        allowedTime = 2000, // maximum time allowed to travel that distance
        elapsedTime,
        startTime;

touchsurface.addEventListener('touchstart', function(e){
    var touchobj = e.changedTouches[0];
    dist = 0;
    startX = touchobj.pageX;
    startY = touchobj.pageY;
    startTime = new Date().getTime(); // record time when finger first makes contact with surface
    e.preventDefault();

}, false);

touchsurface.addEventListener('touchmove', function(e){
    e.preventDefault(); // prevent scrolling when inside DIV
}, false);

touchsurface.addEventListener('touchend', function(e){

    var touchobj = e.changedTouches[0];
    dist = touchobj.pageX - startX; // get total dist traveled by finger while in contact with surface
    elapsedTime = new Date().getTime() - startTime // get time elapsed
    // check that elapsed time is within specified, horizontal dist traveled >= threshold, and vertical dist traveled <= 100
    if(elapsedTime <= allowedTime && Math.abs(dist) >= threshold && Math.abs(touchobj.pageY - startY) <= 100){
        load(1);
    }

}, false);          

моя страница также содержит объект iframe, и слушатель не реагирует на прикосновения внутри iframe. Я хочу, чтобы он работал как внутри, так и снаружи iframe или только внутри iframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...