Tôi đã tìm thấy giải pháp phát hiện nếu người dùng đang sử dụng bàn di chuột. Nó hoạt động rất tốt và chỉ có hai nhược điểm nhỏ.
Trước tiên, nó phát hiện mousescroll sau sự kiện được kích hoạt đầu tiên, do đó, chỉ cần một cú nhấp chuột với con lăn chuột không làm gì cả. Nhưng đây chỉ là lần đầu tiên. Sau đó, chúng tôi có thể lưu trữ giá trị dẫn đến vấn đề nhỏ thứ hai. Khi người dùng có một trackpad và một con chuột với bánh xe nó phát hiện bất cứ điều gì được sử dụng đầu tiên. Đối với tôi những vấn đề đó là không đáng kể. Ở đây, mã
var scrolling = false;
var oldTime = 0;
var newTime = 0;
var isTouchPad;
var eventCount = 0;
var eventCountStart;
var mouseHandle = function (evt) {
var isTouchPadDefined = isTouchPad || typeof isTouchPad !== "undefined";
console.log(isTouchPadDefined);
if (!isTouchPadDefined) {
if (eventCount === 0) {
eventCountStart = new Date().getTime();
}
eventCount++;
if (new Date().getTime() - eventCountStart > 50) {
if (eventCount > 5) {
isTouchPad = true;
} else {
isTouchPad = false;
}
isTouchPadDefined = true;
}
}
if (isTouchPadDefined) { // in this if-block you can do what you want
// i just wanted the direction, for swiping, so i have to prevent
// the multiple event calls to trigger multiple unwanted actions (trackpad)
if (!evt) evt = event;
var direction = (evt.detail<0 || evt.wheelDelta>0) ? 1 : -1;
if (isTouchPad) {
newTime = new Date().getTime();
if (!scrolling && newTime-oldTime > 550) {
scrolling = true;
if (direction < 0) {
// swipe down
} else {
// swipe up
}
setTimeout(function() {oldTime = new Date().getTime();scrolling = false}, 500);
}
} else {
if (direction < 0) {
// swipe down
} else {
// swipe up
}
}
}
}
document.addEventListener("mousewheel", mouseHandle, false);
document.addEventListener("DOMMouseScroll", mouseHandle, false);
Nguồn
2015-07-02 22:05:08
https: // github.com/jnicol/trackpad-scroll-giả lập, nên giúp nguyên nhân ':)' –
@Ethan Brown - Hmm giống như tôi sợ - cũng, gotta nhìn đối với một số giải pháp khác sau đó - và phải, ta sẽ nhận được để mà :) – Cody
@Tats_innit - tuyệt vời! - Nhưng không phải những gì tôi đang tìm kiếm :) – Cody