WIP Interactive globe from Nico's sources
- The globe is a bit small? Ability to control the max-min size potentially
- Is there a reason why `globe.update()` runs every second? Sounds like a lot of resources?
- Have the ability to control the `addEventListener` of the markers to do whatever (in this case, going to a route by clicking on a link with a sapper-noscroll attribute + changing the href attribute on click - the method `goto` from Sapper scrolls back to top / maybe something to fix with the current transition issues?)
- Edited in `./index.js`:
1. Using the class as `export default WebglGlobe` instead of Window (as Svelte or Sapper doesn't likayt)
- Edited in `Camera.js`:
1. Commented line 218: `e.preventDefault();` would cause this error: `[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See <URL>`
This commit is contained in:
47
src/globe/utils/support.js
Normal file
47
src/globe/utils/support.js
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
var support = {};
|
||||
|
||||
var tests = {
|
||||
touch: function () {
|
||||
return 'ontouchstart' in window || /*|| (navigator.maxTouchPoints > 0)*/navigator.msMaxTouchPoints > 0;
|
||||
},
|
||||
//IE10 Pointers
|
||||
msPointer: function () {
|
||||
return !!window.navigator.msPointerEnabled;
|
||||
},
|
||||
//IE11 Pointers
|
||||
pointer: function () {
|
||||
return !!window.navigator.pointerEnabled;
|
||||
},
|
||||
pointerdown: function () {
|
||||
return this.touch() ? 'touchstart' : this.pointer() ? 'pointerdown' : this.msPointer() ? 'MSPointerDown' : 'mousedown';
|
||||
},
|
||||
pointerup: function () {
|
||||
return this.touch() ? 'touchend' : this.pointer() ? 'pointerup' : this.msPointer() ? 'MSPointerUp' : 'mouseup';
|
||||
},
|
||||
pointermove: function () {
|
||||
return this.touch() ? 'touchmove' : this.pointer() ? 'pointermove' : this.msPointer() ? 'MSPointerMove' : 'mousemove';
|
||||
},
|
||||
pointerenter: function () {
|
||||
return this.touch() ? 'touchstart' : this.pointer() ? 'pointerenter' : this.msPointer() ? 'MSPointerEnter' : 'mouseenter';
|
||||
},
|
||||
pointerleave: function () {
|
||||
return this.touch() ? 'touchend' : this.pointer() ? 'pointerleave' : this.msPointer() ? 'MSPointerLeave' : 'mouseleave';
|
||||
},
|
||||
pointerover: function () {
|
||||
return this.touch() ? 'touchstart' : this.pointer() ? 'pointerover' : this.msPointer() ? 'MSPointerOver' : 'mouseover';
|
||||
},
|
||||
pointerout: function () {
|
||||
return this.touch() ? 'touchend' : this.pointer() ? 'pointerout' : this.msPointer() ? 'MSPointerOut' : 'mouseout';
|
||||
}
|
||||
};
|
||||
|
||||
var featureName;
|
||||
for (var feature in tests) {
|
||||
if (tests.hasOwnProperty(feature)) {
|
||||
featureName = feature;
|
||||
support[featureName] = tests[feature]();
|
||||
}
|
||||
}
|
||||
|
||||
export default support
|
||||
Reference in New Issue
Block a user