Почему значение из MouseEvent изменяется случайным образом? - PullRequest
0 голосов
/ 08 марта 2020

Эй, я хочу переместить svg Elements. Я вызываю эту функцию с помощью мышки EventListener. Я просто беру текущую позицию мыши за вычетом начальной точки элемента svg. Затем я готовлю строку со значениями, чтобы использовать ее в атрибуте tarnsform. Дело в том, что когда я не устанавливаю атрибут, у меня всегда есть правильные значения для перевода. Но когда я устанавливаю Атрибут, он всегда переключается между значением около источника и правильным значением.

elementDrag(event) {
        if (this.selectedElement && event.target.type != "textarea") {
        let coord = this.getMousePosition(event);
        //console.log(this.offset.x, this.offset.y);
        let x = coord.x - this.start.x;
        let y = coord.y - this.start.y;
        console.log(x,y);
        this.translate = "translate(";
        this.translate += x + ",";
        this.translate += y + ")";
        this.translate = this.translate.toString();


        //when i comment this line out I have always the right translate 
        this.selectedElement.setAttribute("transform", this.translate);

        }
    }

Я благодарен за любую помощь:)

1 Ответ

0 голосов
/ 08 марта 2020

Это потому, что transform не является допустимым атрибутом HTMLElement. Это свойство CSS атрибута style.

Поэтому вместо setAttribute() вам нужно установить style.transform равным this.translate.

HTML Ссылка на атрибут

...