svg - Vue绑定SVG变换旋转
问题描述
尝试将 svg 组旋转一定量 deg in
data():{
deg: 90,
groupCenter: [100,200]
}
我已经搜索但找不到将数据绑定到 svg 旋转函数的正确语法,
:transform="{'rotate(' + deg + ' ' + groupCenter[0] + ' ' + groupCenter[1] + ')'}"
我正在尝试将其添加到这样的圈子中,
<circle style="mix-blend-mode: multiply;" v-for="(el,index) in element.coords" :fill="el.color" :key="index" :r="el.radius" :cy="el.y" :cx="el.x" :transform="{'rotate(' + deg + ' ' + groupCenter[0] + ' ' + groupCenter[1] + ')'}" />
我明白了,
- invalid expression: Unexpected token + in
{'rotate(' + deg + ' ' + groupCenter[0] + ' ' + groupCenter[1] + ')'}
Raw expression: :transform="{'rotate(' + deg + ' ' + groupCenter[0] + ' ' + groupCenter[1] + ')'}"
解决方案:
这使用一种方法对我有用,
:transform="rotateShape(index)"
以及方法,
rotateShape(){
return "rotate(" + this.deg + " 0 0)"
},
但我不知道为什么最初的尝试不起作用。
解决方案
transform 属性需要评估为一个字符串 - ie transform="rotate(90deg)"
,所以我认为你需要连接一些部分字符串:
:transform="'rotate(' + deg + ' deg)'"
推荐阅读
- reactjs - Auth0 React 快速入门登录不起作用,401 未经授权
- ios - 使用 uicollection 视图 Swift 更新单个视图
- node.js - 从 EventEmitter 附加事件函数数组中删除断开连接时的 Socket.IO 发射器
- swift - SwiftUI ObservedObject 使视图在更新时弹出
- html - Vue模板中第一行三个div,第二行四个div
- sass - SASS 结合了来自 vuetify 的 flex 实用程序的多个类
- javascript - 有没有更好的方法来解决 JavaScript 中的递归斐波那契
- android - 在android studio中将字节顺序转换为nativeOrder()时得到“FirebaseMLException:输入ByteBuffer应该是直接ByteBuffer”
- javascript - 当用户单击更新按钮时,如何在 TODO 应用程序的输入字段中设置 li 值(li 内的文本)?
- python - 我的功能没有打印除“无”以外的任何内容