【问题标题】:Why does value from MouseEvent change randomly?为什么 MouseEvent 的值会随机变化?
【发布时间】:2020-03-08 15:26:31
【问题描述】:

嘿,我想移动 svg 元素。我用 mousemove EventListener 调用这个函数。我只是将当前的 Mouseposition 减去 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);

        }
    }

感谢您的帮助:)

【问题讨论】:

    标签: javascript vue.js mouseevent event-listener mousemove


    【解决方案1】:

    这是因为transform 不是有效的 HTMLElement 属性。它是 style 属性的 CSS 属性。

    因此,您需要将style.transform 设置为等于this.translate,而不是setAttribute()

    HTML Attribute Reference

    【讨论】:

      猜你喜欢
      • 2014-11-20
      • 2021-08-22
      • 2021-11-20
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多