這篇文章主要介紹了html5觸摸事件判斷滑動方向的實現的相關資料,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。
為了給觸控介面提供強大支援, 觸控事件提供了回應使用者對觸控螢幕或觸控板上操作的能力.
##介面
#TouchEvent
TouchEvent 是一類描述手指在觸控平面(觸控螢幕、觸控板等)的狀態變化的事件。這類事件用於描述一個或多個觸點,使開發者可以偵測觸點的移動,觸點的增加和減少,等等。每 個 Touch 物件代表一個接點; 每個觸點都由其位置,大小,形狀,壓力大小,和目標 element 描述。 TouchList 物件代表多個觸點的一個清單.觸控事件的類型
為了區別觸摸相關的狀態改變,存在多種類型的觸摸事件。可以透過檢查觸控事件的 TouchEvent.type 屬性來確定目前事件屬於哪種類型- touchstart:當使用者在觸控平面上放置了一個觸點時觸發。
- touchend:當一個觸點被使用者從觸控平面上移除(當使用者將一個手指離開觸控平面)時觸發。
- touchmove:當使用者在觸控平面上移動觸點時觸發。
- touchcancel:當觸點因某些原因中斷時觸發。
判斷滑動方向
#基本原理就是記錄開始滑動(touchStart)和結束滑動(touchEnd)的座標位置,然後進行相對位置的計算。touchStart:function(e){ startX = e.touches[0].pageX; startY = e.touches[0].pageY; e = e || window.event; }, touchEnd:function(e){ const that = this; endX = e.changedTouches[0].pageX; endY = e.changedTouches[0].pageY; that.upOrDown(startX,startY,endX,endY); }, upOrDown:function (startX, startY, endX, endY) { const that = this; let direction = that.GetSlideDirection(startX, startY, endX, endY); switch(direction) { case 0: console.log("没滑动"); break; case 1: console.log("向上"); break; case 2: console.log("向下"); break; case 3: console.log("向左"); break; case 4: console.log("向右"); break; default: break; } }, //根据起点和终点返回方向 1:向上,2:向下,3:向左,4:向右,0:未滑动 GetSlideDirection:function (startX, startY, endX, endY) { const that = this; let dy = startY - endY; let dx = endX - startX; let result = 0; //如果滑动距离太短 if(Math.abs(dx) < 2 && Math.abs(dy) < 2) { return result; } let angle = that.GetSlideAngle(dx, dy); if(angle >= -45 && angle < 45) { result = 4; }else if (angle >= 45 && angle < 135) { result = 1; }else if (angle >= -135 && angle < -45) { result = 2; } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) { result = 3; } return result; }, //返回角度 GetSlideAngle:function (dx, dy) { return Math.atan2(dy, dx) * 180 / Math.PI; }
原生JS方法
除了H5新增的方法外,還可以用原生JS判斷view的滑動方向,程式碼如下(可直接運作):要注意的是chrome對document.body.scrollTop一直是0,需要改成document.documentElement.scrollTop<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 脚本之家(jb51.net)</title> <style> p { border: 1px solid black; width: 200px; height: 100px; overflow: scroll; } </style> </head> <body style="overflow: scroll"> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <h1 id="HEllo-nbsp-word">HEllo word</h1> <script> function scroll( fn ) { var beforeScrollTop = document.documentElement.scrollTop, fn = fn || function() {}; console.log('beforeScrollTop',beforeScrollTop); window.addEventListener("scroll", function() { var afterScrollTop = document.documentElement.scrollTop, delta = afterScrollTop - beforeScrollTop; console.log('beforeScrollTop',beforeScrollTop); console.log('afterScrollTop',afterScrollTop); if( delta === 0 ) return false; fn( delta > 0 ? "down" : "up" ); beforeScrollTop = afterScrollTop; }, false); } scroll(function(direction) { console.log(direction) }); </script> </body> </html>相關推薦:
#
以上是html5觸控事件判斷滑動方向的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTML5的核心特性包括語義化標籤、多媒體支持、表單增強和離線存儲與本地存儲。 1.語義化標籤如、等提高了代碼可讀性和SEO效果。 2.多媒體支持通過和標籤簡化了嵌入媒體內容的過程。 3.表單增強引入了新的輸入類型和驗證屬性,簡化了表單開發。 4.離線存儲和本地存儲通過ApplicationCache和localStorage等提高了網頁性能和用戶體驗。

html5isamajorrevisionofthehtmlStandardThatRevolutionsWebDevelopmentBybyIntroDucingNewSemanticeLementSemelementsandAndCapabilities.1)itenhancesCodereAdabilityAndSeowitability andSeowithelientsLike,and.2)

H5的高級技巧包括:1.利用進行複雜圖形繪製,2.使用WebWorkers提升性能,3.通過WebStorage增強用戶體驗,4.實現響應式設計,5.利用WebRTC實現實時通信,6.進行性能優化和最佳實踐。這些技巧幫助開發者構建更動態、互動和高效的Web應用。

H5(HTML5)將通過新元素和API提升網頁內容和設計。 1)H5增強了語義化標記和多媒體支持。 2)它引入了Canvas和SVG,豐富了網頁設計。 3)H5的工作原理是通過新標籤和API擴展HTML功能。 4)基本用法包括使用創建圖形,高級用法涉及WebStorageAPI。 5)開發者需注意瀏覽器兼容性和性能優化。

H5帶來了多項新功能和能力,極大提升了網頁的互動性和開發效率。 1.語義化標籤如、增強了SEO。 2.多媒體支持通過和標籤簡化了音視頻播放。 3.Canvas繪圖提供了動態圖形繪製工具。 4.本地存儲通過localStorage和sessionStorage簡化了數據存儲。 5.地理位置API便於開發基於位置的服務。

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

HTML5的核心特性包括語義化標籤、多媒體支持、離線存儲與本地存儲、表單增強。 1.語義化標籤如、等,提升代碼可讀性和SEO效果。 2.和標籤簡化多媒體嵌入。 3.離線存儲和本地存儲如ApplicationCache和LocalStorage,支持無網絡運行和數據存儲。 4.表單增強引入新輸入類型和驗證屬性,簡化處理和驗證。

H5提供了多種新特性和功能,極大地增強了前端開發的能力。 1.多媒體支持:通過和元素嵌入媒體,無需插件。 2.畫布(Canvas):使用元素動態渲染2D圖形和動畫。 3.本地存儲:通過localStorage和sessionStorage實現數據持久化存儲,提升用戶體驗。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。