久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Javascript 高級手勢使用介紹_html5教程技巧

Javascript 高級手勢使用介紹_html5教程技巧HTML5中文學習網,是中國最大的HTML5中文門戶,為廣大HTML5愛好者提供各種HTML5資料,包括HTML5網站、HTML5資訊、HTML5應用、HTML5游戲、HTML5教程、HT
點評:在IE10中新加入的對高級用戶輸入的識別支持,舉例說明:注冊一個點擊操作,通過一句addEventListener 就能夠知道當前用戶的點擊是哪種設備,是手指的點擊,是鼠標的單擊還是觸控筆的點擊(平板設備都會帶有觸控筆)

  在IE10中新加入的對高級用戶輸入的識別支持,舉例說明:注冊一個點擊操作,通過一句addEventListener 就能夠知道當前用戶的點擊是哪種設備,是手指的點擊,是鼠標的單擊還是觸控筆的點擊(平板設備都會帶有觸控筆)。

 <canvas id="MyCanvas"></canvas>
    <script>
        MyCanvas.addEventListener(
"MSPointerDown", MyBack, false);
        
function MyBack(e) {
            alert(e.pointerType.toString());
        }
    
</script>

 以上這段代碼就是能夠識別出當前用戶的點擊是哪種設備,通過回調的方法中 e.pointerType 還進行判斷。鼠標是4,觸控筆是3,手指是2。至于值為1是何種設備還有待研究。

還有需要注意的就是 想在javascript中添加對輸入設備的識別,注冊的方法事件也是有點點區別。

addEventListener 添加的事件為 MSPointerDown

而在IE10中對于這樣的多種設備識別中優先處理的手指的點擊,前提是不影響功能正常單擊的情況下。然而IE10不僅僅能識別用戶的輸入設備還支持非常多的高級手勢

以下為IE10高級手勢支持的演示

 

創建手勢對象

在您的網站中處理手勢的第一步是實例化手勢對象。

var myGesture = new MSGesture();

接下來,為該手勢提供一個目標元素。瀏覽器將對該元素觸發手勢事件。同時,該元素還可以確定事件的坐標空間。

elm = document.getElementById("someElement");

myGesture.target = elm;

elm.addEventListener("MSGestureChange", handleGesture);

最后,告知手勢對象在手勢識別期間處理哪些指針。

elm.addEventListener("MSPointerDown", function (evt) {

// adds the current mouse, pen, or touch contact for gesture recognition

myGesture.addPointer(evt.pointerId);

});

注意:請不要忘記您需要使用 –ms-touch-action 來配置元素以防止其執行默認觸摸操作(例如,平移和縮放),并為輸入提供指針事件。

處理手勢事件

一旦手勢對象具有有效目標并至少添加了一個指針,則其將開始觸發手勢事件。手勢事件可分為兩種:靜態手勢(例如,點擊或保持)和動態手勢(例如,收縮、旋轉和輕掃)。

點擊

最基本的手勢識別是點擊。當檢測到點擊時,將會在手勢對象的目標元素觸發 MSGestureTap 事件。不同于單擊事件,點擊手勢只能在用戶觸摸、按鼠標按鈕或使用手寫筆觸控而不移動時觸發。如果您要區分用戶點擊元素和拖動元素的操作,這一點通常會顯得十分有用。

長按

長按手勢是指用戶使用一個手指觸摸屏幕,并保持片刻并抬起而不移動的操作。在長按交互期間,MSGestureHold 事件會針對手勢的各種狀態而多次觸發:

復制代碼
代碼如下:

element.addEventListener("MSGestureHold", handleHold);
function handleHold(evt) {
if (evt.detail & evt.MSGESTURE_FLAG_BEGIN) {
// Begin signals the start of a gesture. For the Hold gesture, this means the user has been holding long enough in place that the gesture will become a complete press & hold if the finger is lifted.
}
if (evt.detail & evt.MSGESTURE_FLAG_END) {
// End signals the end of the gesture.
}
if (evt.detail & evt.MSGESTURE_FLAG_CANCEL) {
// Cancel signals the user started the gesture but cancelled it. For hold, this occurs when the user drags away before lifting. This flag is sent together with the End flag, signaling the gesture recognition is complete.
}
}

動態手勢(收縮、旋轉、輕掃和拖動)

動態手勢(例如,收縮或旋轉)將以轉換的形式報告,這與 CSS 2D 轉換頗為類似。動態手勢可觸發三種事件:MSGestureStartMSGestureChange(隨著手勢的持續而重復觸發)和 MSGestureEnd。每個事件都包含縮放(收縮)、旋轉、轉換和速度等相關信息。

由于動態手勢以轉換的形式報告,因此使用包含 CSS 2D 轉換的 MSGesture 來操作諸如照片或拼圖等元素將變得十分輕松。例如,您可以通過下列方式啟用縮放、旋轉和拖動元素的操作:

復制代碼
代碼如下:

targetElement.addEventListener("MSGestureChange", manipulateElement);
function manipulateElement(e) {
// Uncomment the following code if you want to disable the built-in inertia provided by dynamic gesture recognition
// if (e.detail == e.MSGESTURE_FLAG_INERTIA)
// return;
var m = new MSCSSMatrix(e.target.style.transform); // Get the latest CSS transform on the element
e.target.style.transform = m
.translate(e.offsetX, e.offsetY) // Move the transform origin under the center of the gesture
.rotate(e.rotation * 180 / Math.PI) // Apply Rotation
.scale(e.scale) // Apply Scale
.translate(e.translationX, e.translationY) // Apply Translation
.translate(-e.offsetX, -e.offsetY); // Move the transform origin back
}


縮放和旋轉等動態手勢可支持鼠標操作,具體可通過在旋轉鼠標滾輪的同時分別使用 CTRL 或 SHIFT 修飾鍵來實現。


【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

作為一名前端工程師,寫組件的能力至關重要。雖然javascript經常被人嘲笑是個小玩具,但是在一代代大牛的前仆后繼的努力下,漸漸的也摸索了一套組件的編寫方式。下面我們來談談,
call和apply都是改變上下文中的this并立即執行這個函數,bind方法可以讓對應的函數想什么時候調就什么時候調用,并且可以將參數在執行的時候添加,這是它們的區別,根據自己的實際情
JavaScript對象是一種復合值:它是屬性和已命名值的集合。通過quot;.quot;符號來引用屬性值。當屬性值是一個函數時,稱為方法。,HTML5中國,中國最大的HTML5中文門戶。
JavaScript 只有 function 級的定義域,而無其他很多編程語言中的塊定義域,所以使得你在某一 function 內的某語句和循環體中定義了一個變量,此變量可作用于整個 function 內,而不僅僅是在
如何寫JavaScript才能逼格更高呢?怎樣才能組織JavaScript才能讓別人一眼看出你不簡單呢?是否很期待別人在看完你的代碼之后感嘆一句“原來還可以這樣寫”呢?下面列出一些在JavaScri
您只要按照這七個步驟操作就會大大提高您的JavaScript項目的質量。使用這個工作流程,錯誤將會減少并且將很多處理優化,讓用戶擁有一個愉悅的上網瀏覽體驗。 ...,HTML5中國,中國最
主站蜘蛛池模板: 天天干夜夜| 欧美激情国产精品 | 国产美女精品视频免费观看 | 真人女人一级毛片免费播放 | 成人av电影在线 | 一级毛片播放 | 欧美xxxx做受欧美 | 国产精品国产三级国产aⅴ中文 | 有码在线| 国产成人精品久久 | 人人性人人性碰国产 | 国产欧美日韩精品一区 | 国产伊人久久久 | 日韩激情免费 | 中文在线视频观看 | 巨大荫蒂视频欧美另类大 | 99精品欧美一区二区三区综合在线 | 在线中文字幕视频 | 国产美女在线观看 | 日韩一区二区在线观看 | 久草视 | 久久久精 | 成人欧美一区二区三区在线播放 | 成人性视频在线播放 | 激情六月天 | 99精品国产一区二区三区 | 天天插天天射天天干 | 日韩av一区二区在线观看 | 999精品视频 | 久草在线 | 精品产国自在拍 | 亚洲精品一区二区三区中文字幕 | 欧美激情久久久久久 | 久久免费观看视频 | 日韩三级在线 | 亚洲黄色一区二区三区 | 国产亚洲成av人在线观看导航 | 欧美高清视频在线观看 | 亚洲精品68久久久一区 | 久久天堂网| 视频一区在线 |