2012-04-02 107 views
2

我們開發了一個網站,它具有水平方向,並且想要用兩個手指左右移動來實現觸摸板控制。觸控板上的雙指滾動js

當你在觸摸板上左右移動兩個手指時,站點頁面會左右滾動。現在我們已經實現了用兩個手指向上/向下移動和頁面向左/向右滾動的觸摸板控制。

我們怎樣才能改變觸摸板控制使用兩個手指從上/下移動到左/右滾動站點頁面左/右使用js或jQuery?

+1

是不是滾動由操作系統(或瀏覽器)處理而不是網站? – 2012-04-02 14:01:39

回答

0

你需要做的是改變可以滾動的東西。如果你的頁面足夠大,左/右滾動有意義,瀏覽器將允許它以這種方式滾動。

基本上,如果你只希望他們在某個方向滾動,只能在該方向上製作內容。如果有必要,您可以通過將需要的特定大小的容器div與overflow設置爲none來實現此目的。

0

通常當你想接手劇本觸摸事件,您可以添加這樣的事情,以避免通常的滾動和縮放:

$("body").bind("touchstart", function(e) { 
    e.preventDefault(); 
}) 
+0

明白了。但是我怎樣才能檢測/聽兩個手指在WebKit引擎(例如,Safari)上構建的瀏覽器的MacOs機器上的觸摸板上的事件?我想捕獲這些事件,以防止在這個瀏覽器中的defoult滾動操作。 – 2012-08-20 13:09:15

0

我可能有點晚,但有同樣的問題,我迷迷糊糊前在這個問題上。 稍微進一步的調查讓我認爲捕捉觸控板滾動的最佳選擇是wheel事件。

function doScroll(e) { 
    // positive deltas are top and left 
    // down and right are negative 

    // horizontal offset e.deltaX 
    // vertical offset  e.deltaY 

    console.log(`x:${e.deltaX} y:${e.deltaY}`); 

    e.preventDefault(); // disable the actual scrolling 
} 

window.addEventListener("wheel", doScroll, false); 

我已經準備a fiddle告訴你的滾動方向和偏移值,但防止滾動本身。

wheel event具有delta屬性(至少在Chrome中)對動量很敏感,並且會給出當前的相對滾動偏移量,而不是在scroll事件中提供的絕對滾動位置。