網站搜尋

html - 如何讓按鈕在手機上僅雙擊時啟動,但在桌面上單擊時啟動?


我有一個按鈕會觸發 JavaScript 中的函數。這個按鈕需要:

  • 如果你點擊它一次(但僅在桌面瀏覽器上)就會觸發
  • 當你點擊兩次但不點擊一次時觸發(僅在行動版瀏覽器上)

這可以通過 HTML 實現嗎?我正在使用 Angular 7。

我曾嘗試判斷是否正在使用手機瀏覽器,並在 TypeScript(Angular)中使用簡單的 "if" 來處理點擊。但這不起作用,所以有沒有辦法用 HTML/CSS 來做到這一點?

//Pseudo code:
if (browser == mobile) {
    register only double tap;
    don't register single click;
}
else if (browser == desktop) {
    register only single click;
    register double click/tap as 2 separate clicks of button;
}


//HTML Button I'm using (this is in Angular 7):
<button id="{{variable}}" (click)="myFunction(param1, param2)" name="on"> 
{{variable}}</button>

答案#1

你可以簡單地使用 click 和 dblclick 來根據使用者的滑鼠操作調用方法

我使用這個方法來檢測手機或電腦瀏覽器 👇

export function isMobileBrowser() { 
 if( navigator.userAgent.match(/Android/i)
 || navigator.userAgent.match(/webOS/i)
 || navigator.userAgent.match(/iPhone/i)
 || navigator.userAgent.match(/iPad/i)
 || navigator.userAgent.match(/iPod/i)
 || navigator.userAgent.match(/BlackBerry/i)
 || navigator.userAgent.match(/Windows Phone/i)
 ){
    return true;
  }
 else {
    return false;
  }
}

元件 🌠

  clickHandler(){
    if (!isMobileBrowser()) {
    console.log('Hello from 💻');
    this.name = "💻";

    }
  }

  dblclickHandler() {
    if (isMobileBrowser()) {
    console.log('Hello from 📱');
    this.name = "📱";
    }
  }

範本 📜

<button (click)="clickHandler()" (dblclick)="dblclickHandler()">Log a message 🔥</button>

示範 🚀🚀,用手機透過這個連結檢查