舉例說(shuō)明:
創(chuàng)新互聯(lián)建站專(zhuān)注于樂(lè)清網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供樂(lè)清營(yíng)銷(xiāo)型網(wǎng)站建設(shè),樂(lè)清網(wǎng)站制作、樂(lè)清網(wǎng)頁(yè)設(shè)計(jì)、樂(lè)清網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造樂(lè)清網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供樂(lè)清網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
通過(guò)一句addEventListener 就能夠知道當(dāng)前用戶的點(diǎn)擊是哪種設(shè)備,是手指的點(diǎn)擊,是鼠標(biāo)的單擊還是觸控筆的點(diǎn)擊(平板設(shè)備都會(huì)帶有觸控筆):
canvas id="MyCanvas"/canvas
script
MyCanvas.addEventListener("MSPointerDown", MyBack, false);
function MyBack(e) {
alert(e.pointerType.toString());
}
/script
通過(guò)回調(diào)的方法中 e.pointerType 還進(jìn)行判斷。
鼠標(biāo)是4,觸控筆是3,手指是2。
至于值為1是何種設(shè)備還有待研究。
還有需要注意的就是 想在javascript中添加對(duì)輸入設(shè)備的識(shí)別,注冊(cè)的方法事件也是有點(diǎn)點(diǎn)區(qū)別。
addEventListener 添加的事件為 MSPointerDown
而在IE10中對(duì)于這樣的多種設(shè)備識(shí)別中優(yōu)先處理的手指的點(diǎn)擊,前提是不影響功能正常單擊的情況下,然而IE10不僅僅能識(shí)別用戶的輸入設(shè)備還支持非常多的高級(jí)手勢(shì)。
[img]在win7下實(shí)現(xiàn)多點(diǎn)觸控方法:
首先,需要一臺(tái)支持觸摸特性的PC,目前市面上可選的產(chǎn)品主要有:
HP TouchSmart All-in-One PCs (IQ500 series IQ800 series)。
HP TouchSmart tx2 Tablet PC。
Dell Latitude XT Tablet PC。
其次,需要安裝最新的多點(diǎn)觸摸驅(qū)動(dòng)以使得屏幕能夠識(shí)別觸摸指示。不過(guò)這些驅(qū)動(dòng)目前都是Beta階段,而在正式發(fā)布之前都必須通過(guò)WHQL測(cè)試,我們目前無(wú)法保證所有預(yù)裝Windows?7的機(jī)器都裝有WHQL驅(qū)動(dòng)。
HP TouchSmart All-in-One PCs :這款機(jī)器的驅(qū)動(dòng)只需通過(guò)Windows?Update即可完成。
Dell Latitude XT and HP TouchSmart tx2 Tablet PCs:可以在N-Trig’s website上下載。
在Windows?7 Beta中,很多特性都是與多點(diǎn)觸摸相關(guān)的。
如畫(huà)圖中的油漆刷就可以用手指來(lái)控制,不過(guò)支持的手指數(shù)目取決于機(jī)器對(duì)多點(diǎn)觸摸的支持,有些只支持2個(gè),有些可以達(dá)到4個(gè)設(shè)置更多。
Windows 7畫(huà)筆。
還有IE8中,用戶可以用手指在任意地方向上或向下拖拽滾動(dòng)網(wǎng)頁(yè),還可以用手指向左/右甩以完成前進(jìn)/后退操作。另外,任務(wù)欄也是觸摸優(yōu)化過(guò)的,觸摸的話用手指拖拽就可以打開(kāi)Jumplists。
您好!很高興為您答疑!
火狐瀏覽器可以很好的支持多點(diǎn)觸控功能,使用體驗(yàn)非常好,其他瀏覽器是否支持,您需要自己測(cè)試。
您可以在火狐社區(qū)了解更多內(nèi)容。希望我的回答對(duì)您有所幫助,如有疑問(wèn),歡迎繼續(xù)在本平臺(tái)咨詢。
ontouchstart
ontouchmove
ontouchend
ontouchcancel
移動(dòng)平臺(tái)的四個(gè)觸摸事件
因此他們的順序是需要注意的:touchstart → mouseover → mousemove → mousedown → mouseup → click1
/**
* onTouchEvent
*/
var div = document.getElementById("div");
//touchstart類(lèi)似mousedown
div.ontouchstart = function(e){
//事件的touches屬性是一個(gè)數(shù)組,其中一個(gè)元素代表同一時(shí)刻的一個(gè)觸控點(diǎn),從而可以通過(guò)touches獲取多點(diǎn)觸控的每個(gè)觸控點(diǎn)
//由于我們只有一點(diǎn)觸控,所以直接指向[0]
var touch = e.touches[0];
//獲取當(dāng)前觸控點(diǎn)的坐標(biāo),等同于MouseEvent事件的clientX/clientY
var x = touch.clientX;
var y = touch.clientY;
};
//touchmove類(lèi)似mousemove
div.ontouchmove = function(e){
//可為touchstart、touchmove事件加上preventDefault從而阻止觸摸時(shí)瀏覽器的縮放、滾動(dòng)條滾動(dòng)等
e.preventDefault();
};
//touchend類(lèi)似mouseup
div.ontouchup = function(e){
//nothing to do
};