簡體   English   中英

javascript-滑動手勢未檢測到

[英]javascript - Swipe gesture not detecting

我在另一個關於堆棧溢出的問題上找到了代碼,我使用了相同的代碼,但是它不起作用。 我已經在iPhone上使用Safari和chrome以及在使用chrome的android設備上進行了嘗試。 無法弄清楚為什么事件處理程序不起作用。

手勢的目的是使用rgb值更改背景顏色。 桌面版本適用,如果要檢查,請訪問andy.serra.us。 現在,我正在嘗試構建移動版本。

document.body.addEventListener('touchstart', handleTouchStart(event), false);
document.body.addEventListener('touchmove', handleTouchMove(event), false);

var xDown = null;
var yDown = null;

function handleTouchStart(event) {
  if(screen && screen.width < 480 && !(document.getElementsByClassName('in')[0])) {
    xDown = event.touches[0].clientX;
    yDown = event.touches[0].clientY;
  }
};

function handleTouchMove(event) {
  if(screen && screen.width < 480 && !(document.getElementsByClassName('in')[0])) {
    if ( ! xDown || ! yDown ) {
        return;
    }
    var xUp = event.touches[0].clientX;
    var yUp = event.touches[0].clientY;

    var xDiff = xDown - xUp;
    var yDiff = yDown - yUp;

    if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {/*most significant*/
        if ( xDiff > 0 ) {
          red -= increment;
          if(red < 0) { red = 0; }
          document.getElementById("val-display").innerHTML = "Red: " + red + "<br>Green: " + green + "<br>Blue: " + blue + "<br>Hex: #" + fullColorHex(red, green, blue);
        } else {
          blue -= increment;
          if(blue < 0) { blue = 0; }
          document.getElementById("val-display").innerHTML = "Red: " + red + "<br>Green: " + green + "<br>Blue: " + blue + "<br>Hex: #" + fullColorHex(red, green, blue);
        }
    } else {
        if ( yDiff > 0 ) {
          green -= increment;
          if(green < 0) { green = 0; }
          document.getElementById("val-display").innerHTML = "Red: " + red + "<br>Green: " + green + "<br>Blue: " + blue + "<br>Hex: #" + fullColorHex(red, green, blue);
        }
    }
    setBackgroundColor();
    setTextColorFromBackground("title", false);
    setTextColorFromBackground("side_box", true);
      /* reset values */
    xDown = null;
    yDown = null;
  }
};

如果您想要的是跨平台的輕掃監聽器,那么我只是在npm上上傳了一個。 它稱為goodtap,可以處理點擊,滑動,長按和外部點擊,並且不需要單獨的事件監聽器,因此任何生成的html都可以自動運行。

好點擊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM