佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > html5構(gòu)建觸屏網(wǎng)站之touch事件介紹

html5構(gòu)建觸屏網(wǎng)站之touch事件介紹

熱門標(biāo)簽:網(wǎng)站建設(shè) 使用U盤裝系統(tǒng) 美圖手機(jī) 檢查注冊表項 阿里云 智能手機(jī) 硅谷的囚徒呼叫中心 百度競價點擊價格的計算公式
前言
一個觸屏網(wǎng)站到底和傳統(tǒng)的pc端網(wǎng)站有什么區(qū)別呢,交互方式的改變首當(dāng)其沖。例如我們常用的click事件,在觸屏設(shè)備下是如此無力。
手機(jī)上的大部分交互都是通過touch來實現(xiàn)的,于是,對于觸屏的交互式網(wǎng)站,觸摸事件是相當(dāng)重要的。
Apple在iOS 2.0中引入了觸摸事件API,Android正迎頭趕上這一事實標(biāo)準(zhǔn),縮小差距。最近一個W3C工作組正合力制定這一觸摸事件規(guī)范。

規(guī)范
這里我們介紹幾種普及得比較好的觸摸事件,你可以在絕大多數(shù)現(xiàn)代瀏覽器中來測試這一事件(必須是觸屏設(shè)備哦):
touchstart:觸摸開始的時候觸發(fā)
touchmove:手指在屏幕上滑動的時候觸發(fā)
touchend:觸摸結(jié)束的時候觸發(fā)
而每個觸摸事件都包括了三個觸摸列表,每個列表里包含了對應(yīng)的一系列觸摸點(用來實現(xiàn)多點觸控):
touches:當(dāng)前位于屏幕上的所有手指的列表。
targetTouches:位于當(dāng)前DOM元素上手指的列表。
changedTouches:涉及當(dāng)前事件手指的列表。
每個觸摸點由包含了如下觸摸信息(常用):
identifier:一個數(shù)值,唯一標(biāo)識觸摸會話(touch session)中的當(dāng)前手指。一般為從0開始的流水號(android4.1,uc)
target:DOM元素,是動作所針對的目標(biāo)。
pageX/pageX/clientX/clientY/screenX/screenY:一個數(shù)值,動作在屏幕上發(fā)生的位置(page包含滾動距離,client不包含滾動距離,screen則以屏幕為基準(zhǔn))?!?
radiusX/radiusY/rotationAngle:畫出大約相當(dāng)于手指形狀的橢圓形,分別為橢圓形的兩個半徑和旋轉(zhuǎn)角度。初步測試瀏覽器不支持,好在功能不常用,歡迎大家反饋。
有了這些信息,我們就可以依據(jù)這些事件信息為用戶提供不同的反饋了。

下面,我將為大家展示一個小demo,用touchmove實現(xiàn)的單指拖動:

復(fù)制代碼
代碼如下:

/*單指拖動*/
var obj = document.getElementById('id');
obj.addEventListener('touchmove', function(event) {
// 如果這個元素的位置內(nèi)只有一個手指的話
if (event.targetTouches.length == 1) {
     event.preventDefault();// 阻止瀏覽器默認(rèn)事件,重要
var touch = event.targetTouches[0];
// 把元素放在手指所在的位置
obj.style.left = touch.pageX-50 + 'px';
obj.style.top = touch.pageY-50 + 'px';
}
}, false);

關(guān)于a標(biāo)簽四個偽類在觸屏設(shè)備中的小技巧
我們都知道a標(biāo)簽的四個偽類link,visited,active,hover是專為click事件設(shè)計的,所以在觸屏網(wǎng)站中盡量不要使用它們。經(jīng)測試大部分也是不可用的。但是這里有一個關(guān)于hover的小技巧,當(dāng)你點擊過一個按鈕之后,這個按鈕就會一直處于hover的狀態(tài),此時你基于這個偽類所設(shè)置的css也是起作用的,直到你用手指點擊另外一個按鈕,hover狀態(tài)就會轉(zhuǎn)移到另一個按鈕。利用這一點,我們可以做出一些小效果。此技巧在大多數(shù)瀏覽器中還是可用的。

理想很豐滿,現(xiàn)實很骨感!
雖然w3c為多點觸控做好了準(zhǔn)備,遺憾的是鮮有瀏覽器支持多點觸控的特性,尤其是android平臺上的瀏覽器,也就讓上文介紹的手指列表變?yōu)榱丝照?,捕獲兩個觸摸點會直接導(dǎo)致觸摸失效!好在ios設(shè)備自帶的safari瀏覽器能夠支持這一特性,讓我們對未來充滿希望。畢竟,我們被鼠標(biāo)的單點操作禁錮了太久,多指操作一個網(wǎng)站是多么令人興奮!

標(biāo)簽:煙臺 黃山 通遼 賀州 懷化 湖北 山南 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5構(gòu)建觸屏網(wǎng)站之touch事件介紹》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    大渡口区| 昌乐县| 蒲江县| 双辽市| 孝感市| 庄浪县| 手游| 迭部县| 靖边县| 兴文县| 洪湖市| 新泰市| 杭锦旗| 专栏| 钟山县| 大连市| 康保县| 太仆寺旗| 朝阳区| 曲沃县| 吉安市| 贡觉县| 鹤峰县| 临泉县| 科技| 德惠市| 河北区| 和政县| 凌源市| 湖州市| 梧州市| 中宁县| 石泉县| 株洲市| 嵊泗县| 高平市| 扎鲁特旗| 隆尧县| 桐梓县| 肇源县| 商南县|