一個觸控網站到底和傳統的pc端網站有什麼區別呢,互動方式的改變首當其衝。例如我們常用的click事件,在觸控螢幕設備下是如此無力。
手機上的大部分互動都是透過touch來實現的,於是,對於觸控螢幕的互動式網站,觸控事件是相當重要的。
Apple在iOS 2.0中引入了觸摸事件API,Android正迎頭趕上這一事實標準,縮小差距。最近一個W3C工作小組正合力製定這項觸控事件規範。
規格
這裡我們介紹幾種普及得比較好的觸控事件,你可以在絕大多數現代瀏覽器中來測試這一事件(必須是觸控螢幕設備哦):
touchstart:觸摸開始的時候觸發
touchmove:手指在屏幕上滑動的時候觸發
touchend:觸摸結束的時候觸發
而每個觸摸事件都包括了三個觸摸列表,每個列表包含了對應的一系列觸控點(用來實現多點觸控):
touches:目前位於螢幕上的所有手指的列表。
targetTouches:位於目前DOM元素上手指的清單。
changedTouches:涉及當前事件手指的清單。
每個觸控點由包含如下觸控資訊(常用):
identifier:一個數值,唯一標識觸控會話(touch session)中的目前手指。一般為從0開始的流水號(android4.1,uc)
target:DOM元素,是動作所針對的目標。
pageX/pageX/clientX/clientY/screenX/screenY:一個數值,動作在螢幕上發生的位置(page包含滾動距離,client不包含滾動距離,screen則以螢幕為基準)。
radiusX/radiusY/rotationAngle:畫出大約相當於手指形狀的橢圓形,分別為橢圓形的兩個半徑和旋轉角度。初步測試瀏覽器不支援,好在功能不常用,歡迎大家回饋。
有了這些訊息,我們就可以依據這些事件訊息為使用者提供不同的回饋了。
下面,我將為大家展示一個小demo,用touchmove實現的單指拖曳:
/*單指拖曳*/
var obj = document.getElementById('id');
obj .addEventListener('touchmove', function(event) {
// 如果這個元素的位置內只有一個手指的話
if (event.targetTouches.length == 1) {
vent event.preDefault() ;// 阻止瀏覽器預設事件,重要
var touch = event.targetTouches[0];
// 把元素放在手指的位置
obj.style.left = touch.pageX-50 'px';
obj.style.top = touch.pageY-50 'px';
}
}, false);
關於a標籤四個偽類在觸控螢幕設備中的小技巧:
我們都知道a標籤的四個偽類link,visited,active,hover是專為click事件設計的,所以在觸控網站中盡量不要使用它們。經測試大部分也是不可用的。但這裡有一個關於hover的小技巧,當你點擊過一個按鈕之後,這個按鈕就會一直處於hover的狀態,此時你基於這個偽類所設定的css也是起作用的,直到你用手指點擊另外一個按鈕,hover狀態就會轉移到另一個按鈕。利用這一點,我們可以做出一些小效果。此技巧在大多數瀏覽器中還是可用的。
理想很豐滿,現實很骨感!
雖然w3c為多點觸控做好了準備,遺憾的是鮮有瀏覽器支援多點觸控的特性,尤其是android平台上的瀏覽器,也就讓上文介紹的手指列表變為了空談,捕捉兩個觸摸點會直接導致觸摸失效!好在ios設備自備的safari瀏覽器能夠支援這項特性,讓我們對未來充滿希望。畢竟,我們被滑鼠的單點操作禁錮了太久,多指操作一個網站是多麼令人興奮!

本文解釋瞭如何使用< audio>元素,包括用於格式選擇的最佳實踐(MP3,OGG Vorbis),文件優化和JavaScript控件用於播放。 它強調使用多個音頻f

本文討論了使用視口元標記來控制移動設備上的頁面縮放,重點是寬度和初始尺度之類的設置,以獲得最佳響應和性能。

本文討論了使用GeOlocation API管理用戶位置隱私和權限,並強調要求權限,確保數據安全性並遵守隱私法律的最佳實踐。

本文使用JavaScript詳細介紹了創建Interactive HTML5遊戲。 它涵蓋了遊戲設計,HTML結構,CSS樣式,JavaScript邏輯(包括事件處理和動畫)以及音頻集成。 必需的JavaScript庫(Phaser,Pi

本文解釋瞭如何創建和驗證HTML5表格。 它詳細介紹了>元素,輸入類型(文本,電子郵件,編號等)和屬性(必需,模式,最小,最大)。 HTML5的優勢比舊方法形成

本文討論了使用HTML5頁面可見性API來檢測頁面可見性,提高用戶體驗並優化資源使用情況。關鍵方麵包括暫停媒體,減少CPU負載以及基於可見性變化管理分析。

本文介紹瞭如何使用HTML5拖放API來創建交互式用戶界面,詳細介紹了使元素可拖動的步驟,處理關鍵事件並通過自定義反饋來增強用戶體驗。它還討論了一個常見的陷阱

本文解釋了HTML5 Websockets API,用於實時雙向客戶服務器通信。 它詳細詳細介紹了客戶端(JavaScript)和服務器端(Python/Flask)的實現,以應對可伸縮性,狀態管理,一個挑戰


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

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

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),