Touchgesten implementiert
This commit is contained in:
parent
9862131e77
commit
50783c6ff2
File diff suppressed because one or more lines are too long
@ -3099,10 +3099,48 @@ class ScaleHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ParentSegment extends Segment {
|
class ParentSegment extends Segment {
|
||||||
|
static initListener(){
|
||||||
|
window.addEventListener("mousedown", (e) => {
|
||||||
|
ParentSegment.mouseDownTarget = e.originalTarget;
|
||||||
|
});
|
||||||
|
window.addEventListener("mouseup", (e) => {
|
||||||
|
ParentSegment.mouseDownTarget = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener("touchstart", (e) => {
|
||||||
|
console.log("start", e);
|
||||||
|
if (e.targetTouches.length === 1)
|
||||||
|
{
|
||||||
|
ParentSegment.mouseDownTarget = e.targetTouches[0].target;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
window.addEventListener("touchend", (e) => {
|
||||||
|
console.log("end", e);
|
||||||
|
ParentSegment.mouseDownTarget = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
constructor(element) {
|
constructor(element) {
|
||||||
super(element);
|
super(element);
|
||||||
this.children = [];
|
this.children = [];
|
||||||
this.class = "rotate-0";
|
this.class = "rotate-0";
|
||||||
|
|
||||||
|
let self = this;
|
||||||
|
this.touchendListener = function(e){
|
||||||
|
if (e.targetTouches.length === 0 && e.changedTouches.length === 1 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY)))
|
||||||
|
{
|
||||||
|
console.log(e);
|
||||||
|
self.rotate();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.mouseupListener = function(e){
|
||||||
|
if (ParentSegment.mouseDownTarget !== null && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(e.originalTarget))
|
||||||
|
{
|
||||||
|
self.rotate();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async rotate() {
|
async rotate() {
|
||||||
@ -3197,12 +3235,16 @@ class ParentSegment extends Segment {
|
|||||||
childContainer.removeAllChildren();
|
childContainer.removeAllChildren();
|
||||||
|
|
||||||
this._updateRotationClass();
|
this._updateRotationClass();
|
||||||
|
// this.element.onclick = function (e) {
|
||||||
|
// self.rotate();
|
||||||
|
// e.stopPropagation();
|
||||||
|
// };
|
||||||
|
|
||||||
const self = this;
|
this.element.removeEventListener("mouseup",this.mouseupListener);
|
||||||
this.element.onclick = function (e) {
|
this.element.removeEventListener("touchend",this.touchendListener);
|
||||||
self.rotate();
|
|
||||||
e.stopPropagation();
|
this.element.addEventListener("mouseup", this.mouseupListener);
|
||||||
};
|
this.element.addEventListener("touchend", this.touchendListener);
|
||||||
|
|
||||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||||
this.children[i]._updateElement();
|
this.children[i]._updateElement();
|
||||||
@ -3213,6 +3255,7 @@ class ParentSegment extends Segment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ParentSegment.initListener();
|
||||||
|
|
||||||
class LeafSegment extends Segment {
|
class LeafSegment extends Segment {
|
||||||
|
|
||||||
|
|||||||
@ -2,10 +2,48 @@ import {Segment} from "./Segment";
|
|||||||
import {DelayPromise} from "../../../../../../js/lib/pwa-assets";
|
import {DelayPromise} from "../../../../../../js/lib/pwa-assets";
|
||||||
|
|
||||||
export class ParentSegment extends Segment {
|
export class ParentSegment extends Segment {
|
||||||
|
static initListener(){
|
||||||
|
window.addEventListener("mousedown", (e) => {
|
||||||
|
ParentSegment.mouseDownTarget = e.originalTarget;
|
||||||
|
});
|
||||||
|
window.addEventListener("mouseup", (e) => {
|
||||||
|
ParentSegment.mouseDownTarget = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener("touchstart", (e) => {
|
||||||
|
console.log("start", e);
|
||||||
|
if (e.targetTouches.length === 1)
|
||||||
|
{
|
||||||
|
ParentSegment.mouseDownTarget = e.targetTouches[0].target;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
window.addEventListener("touchend", (e) => {
|
||||||
|
console.log("end", e);
|
||||||
|
ParentSegment.mouseDownTarget = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
constructor(element) {
|
constructor(element) {
|
||||||
super(element);
|
super(element);
|
||||||
this.children = [];
|
this.children = [];
|
||||||
this.class = "rotate-0";
|
this.class = "rotate-0";
|
||||||
|
|
||||||
|
let self = this;
|
||||||
|
this.touchendListener = function(e){
|
||||||
|
if (e.targetTouches.length === 0 && e.changedTouches.length === 1 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY)))
|
||||||
|
{
|
||||||
|
console.log(e);
|
||||||
|
self.rotate();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.mouseupListener = function(e){
|
||||||
|
if (ParentSegment.mouseDownTarget !== null && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(e.originalTarget))
|
||||||
|
{
|
||||||
|
self.rotate();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async rotate() {
|
async rotate() {
|
||||||
@ -102,10 +140,16 @@ export class ParentSegment extends Segment {
|
|||||||
this._updateRotationClass();
|
this._updateRotationClass();
|
||||||
|
|
||||||
const self = this;
|
const self = this;
|
||||||
this.element.onclick = function (e) {
|
// this.element.onclick = function (e) {
|
||||||
self.rotate();
|
// self.rotate();
|
||||||
e.stopPropagation();
|
// e.stopPropagation();
|
||||||
};
|
// };
|
||||||
|
|
||||||
|
this.element.removeEventListener("mouseup",this.mouseupListener);
|
||||||
|
this.element.removeEventListener("touchend",this.touchendListener);
|
||||||
|
|
||||||
|
this.element.addEventListener("mouseup", this.mouseupListener);
|
||||||
|
this.element.addEventListener("touchend", this.touchendListener);
|
||||||
|
|
||||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||||
this.children[i]._updateElement();
|
this.children[i]._updateElement();
|
||||||
@ -115,4 +159,5 @@ export class ParentSegment extends Segment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ParentSegment.initListener();
|
||||||
@ -93,9 +93,11 @@ $animationDuration: 0.25s;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#level {
|
#level {
|
||||||
|
user-select: none;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
transition: none;
|
transition: none;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(255,255,255,0);
|
||||||
//width: 100%;
|
//width: 100%;
|
||||||
|
|
||||||
* {
|
* {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user