蘋果已經宣佈,其新的iPhone 6S和6S +,users can now use pressure to interact with their apps。是否有一個JavaScript API可供網頁開發人員在標準網站上利用這一新功能?如果是這樣,它如何實施?如何使用Javascript訪問iPhone中Safari的新3D touch?
0
A
回答
2
是的,根據W3C,a new force
property has been recently added to the spec of the Touch
interface,範圍從0(最小力)到1(最大力)。這已經在iOS9上適用於Safari(不確定Chrome或其他瀏覽器是否已經實現了它)。
快速回答:
要訪問此屬性,簡單地調用
touchForce = evt.originalEvent.touches[0].force;
一個touchstart
或touchmove
事件監聽器內。
沒有與此實施的幾個問題:
- 在
touchstart
,力將非常接近於0,因爲它只要檢測到的壓力的第一個跡象調用。 - 如果壓力升高或降低,
touchstart
事件將不會再次觸發。 touchmove
不可靠,因爲在讀取新的force
之前,您必須等待位置更改,但情況並非總是如此。
解決方案:
爲了解決這個問題,你可以設置touchstart
後評價這支部隊每隔幾毫秒爲單位,然後清除touchend
超時。
var tO = 0;
$("#div1").on("touchstart", startTouch);
$("#div1").on("touchend", endTouch);
function startTouch(evt){
evt.preventDefault();
touchForce = evt.originalEvent.touches[0].force;
tO = window.setTimeout(function(){startTouch(evt)}, 100);
// Do something with touchForce
}
function endTouch(){
touchForce = 0;
window.clearTimeout(tO);
// Do something else
}
Try it out in this CodePen I created
這是一個有點哈克,但它的作品。也許在將來他們會創建一個新的forcechange
事件,但這是我們現在所有的。
原諒JQuery,我用它來更快地說明這一點。
0
您可以使用JS庫Pressure.js。如果您擁有新的Force Touch觸控板的iPhone 6s或新Macbook,則可以輕鬆獲得iOS和OSX上的Force和3D Touch值。
的語法很簡單過,這裏有一個例子:
Pressure.set('#element', {
start: function(){
// this is called on force start
},
end: function(){
// this is called on force end
},
startDeepPress: function(){
// this is called on "force click"/"deep press", aka once the force is greater than 0.5
},
endDeepPress: function(){
// this is called when the "force click"/"deep press" end
},
change: function(force, event){
// this is called every time there is a change in pressure
// here the 'force' variable passed in container the current pressure force
},
unsupported: function(){
// this is called once there is a touch on the element and the device or browser does not support Force or 3D touch
}
});
相關問題
- 1. 如何在應用程序中訪問iPhone Safari歷史記錄?
- 2. 3D對象關節在iPhone中訪問
- 3. 從安裝在iPhone,iPad或iPod Touch上的Safari訪問內置攝像頭?
- 4. 如何訪問新的iPhone X的FaceID?
- 5. 使用JavaScript訪問iPhone指南針
- 6. 在Safari中使用Javascript的新日期()
- 7. 如何使用統一的3d獲得谷歌訪問令牌?使用Unity 3D
- 8. 使用iPhone/iPod Touch加速旋轉3D對象
- 9. 如何在使用html5 localStorage的iphone Safari上緩存javascript?
- 10. iPhone移動Safari文件系統訪問
- 11. 如何在Javascript中爲iOS/Mobile Safari創建「Touch」對象?
- 12. 在Safari中使用Applescript訪問Web Inspector
- 13. 如何在Safari中通過Javascript訪問Java對象
- 14. iPhone滑塊在Javascript - 問題在Safari
- 15. 3D Touch on responsive
- 16. 3D Touch和SpriteKit
- 17. 3D Touch UICollectionView insideUITableviewCell
- 18. 如何使用javascript訪問textarea的值?
- 19. iPhone Safari Vs PC Safari
- 20. 使用telnet訪問的3d引擎
- 21. 如何使用3D Touch來實現這樣的共享?
- 22. 如何訪問3D CV的索引:: Mat
- 23. 如何設置-ms-touch-action:none;使用javascript
- 24. 3D Touch不在CollectionView中
- 25. iOS Touch中的3D Touch快速操作應用程序
- 26. 使用javascript在手機Safari瀏覽器中使用javascript從Iphone中讀取UDID
- 27. safari中的Javascript window.open問題
- 28. 如何使用JavaScript訪問PHP變量?
- 29. 如何使用Javascript訪問memcached?
- 30. 如何使用JavaScript訪問攝像頭