裏面我試圖遵循https://codepen.io/jordizle/pen/haIdo/處理鼠標和觸摸事件只是一個div
最後對我工作的一個項目立方體作品立方碼。但我遇到了一個問題。多維數據集響應它所在的div容器外部的事件。例如,如果我使用鼠標拖動不同的div,則位於單獨div上的多維數據集將響應該事件。
我不確定如何解決此問題。
我已經在這裏創造一個小提琴:https://jsfiddle.net/sourabhtewari/75c6qcm5/2/
我倒沒一個JavaScript/jQuery的專家,但這是初始化方法
var cube = new Cube({
viewport: viewport,
element: document.getElementsByClassName('cube')[0]
});
與視在
var viewport = new Viewport({
element: document.getElementsByClassName('cube')[0],
fps: 20,
sensivity: 0.1,
sensivityFade: 0.93,
speed: 2,
touchSensivity: 1.5
});
被初始化
我看到綁定事件的元素對我來說看起來沒問題。因此,我正在解決爲什麼多維數據集會對其父窗口外部的事件作出反應。
結合事件看起來像這些
bindEvent(document, 'mousedown', function() {
self.down = true;
});
bindEvent(document, 'mouseup', function() {
self.down = false;
});
bindEvent(document, 'keyup', function() {
self.down = false;
});
bindEvent(document, 'mousemove', function (e) {
self.mouseX = e.pageX;
self.mouseY = e.pageY;
});
bindEvent(document, 'touchstart', function (e) {
self.down = true;
e.touches ? e = e.touches[0] : null;
self.mouseX = e.pageX/self.touchSensivity;
self.mouseY = e.pageY/self.touchSensivity;
self.lastX = self.mouseX;
self.lastY = self.mouseY;
});
bindEvent(document, 'touchmove', function (e) {
if (e.preventDefault) {
e.preventDefault();
}
if (e.touches.length === 1) {
e.touches ? e = e.touches[0] : null;
self.mouseX = e.pageX/self.touchSensivity;
self.mouseY = e.pageY/self.touchSensivity;
}
});
bindEvent(document, 'touchend', function (e) {
self.down = false;
});
如果有人能幫助我在這裏,我將感謝!