Czy istnieje sposób na wykrycie Force Click with Javascript? Wiem, że są sposoby na wykrywanie regularnych i prawidłowych kliknięć, ale co z kliknięciami siły?
Odpowiedzi:
2 dla odpowiedzi № 1Posłuchaj webkitmouseforcewillbegin
i webkitmouseforcedown
wydarzenia. Możesz uzyskać poziom siły od webkitForce
właściwość w obiekcie przekazanym do obsługi zdarzenia.
Oczywiście działa to tylko w Safari na komputerach Mac z obsługą Force Touch.
Źródło: Dokumentacja programowania WebKit DOM
3 dla odpowiedzi № 2
Znalazłem bibliotekę JS o nazwie Pressure.js dzięki czemu obsługa Force / 3D Touch staje się prostsza. Działa zarówno na iOS z obsługą 3D Touch, jak i OSX z siłą dotyku. Jeśli używasz go tylko do wymuszonego dotyku na Macu, możesz go użyć w ten sposób:
Pressure.set("#element", {
start: function(event){
// this is called on force start
},
end: function(){
// this is called on force end
},
startDeepPress: function(event){
// 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
},
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
}
}, {only: "force"});
The {only: "force"}
opcje na końcu upewnij się, że działa tylko dla wymuszonego dotyku na Macu, a nie również na iOS. Jeśli chcesz, aby działał na obu prostych, usuń tę opcję.