1

私の究極の願いは、タッチスクリーン デスクトップ (マウスやキーボードのないオールインワン コンピューター) を使用しているユーザーが、ツールヒントを使用する Web サイトをナビゲートできるようにすることです。マウスを使用してツールチップにカーソルを合わせると、ツールチップが開きます。ツールチップには、クリックできるリンクが含まれています。タッチスクリーンを使用すると、ホバーはなく、「タッチ」/クリックのみです。どちらの場合も、ユーザーがマウスを使用すると、ユーザーがタッチスクリーンを使用すると、同じブラウザを使用して同じ OS にページが表示されます。

したがって、マウスを搭載したデスクトップ コンピューターと、マウスを搭載していないタッチスクリーン デスクトップ コンピューターの 2 つを区別する必要があります。Modernizr タッチ テスト (http://modernizr.github.com/Modernizr/touch.html) は、タッチスクリーン デスクトップ (http://shop.lenovo.com/us/landing_pages/thinkcentre/2010/m90z) で完全に失敗します。UA またはブラウザのスニッフィングも機能しません。

(かなりの量の検索の後、すべての検出は、携帯電話またはタブレット、ブラウザー、UA の異なるバージョンを区別しようとします...同じブラウザーを使用して同じ OS で実行されているデスクトップのタッチスクリーンではありません。)

何か案は?

4

1 に答える 1

1

イベント リスナーtouchstartmousemoveページに追加し、ユーザーがページの操作を開始するのを待ちます。最初のイベントが の場合、mousemoveユーザーはマウスで操作するため、おそらくデスクトップであり、それ以外の場合はタッチ スクリーンです。

$(document).on('touchstart.desktopDetect mousemove.desktopDetect', function(ev) {
    window.IS_TOUCHSCREEN_DEVICE = (ev.type == 'touchstart');
    $(document).off('.desktopDetect');
});

ここで実際の例を確認してください: https://jsfiddle.net/evpozdniakov/uvb51cnm/embedded/result/

于 2015-12-22T15:55:06.670 に答える