【发布时间】:2021-06-20 15:32:43
【问题描述】:
我目前正在将一个 vue 2 / Quasar 1 项目迁移到 vue 3 / Quasar 2,并且我正在努力处理一个 SVG 动画元素上的事件,该事件似乎在新版本中没有触发....
<animateTransform
begin="startAnimation.begin"
attributeName="transform"
attributeType="XML"
type="rotate"
from="-18 150 380"
to="0 150 380"
dur="0.6s"
repeatCount="1"
fill="freeze"
calcMode="spline"
keySplines="0.3 0.7 0.3 0.7"
keyTimes="0;1"
@endEvent="animationEndHandler()"
/>
endEvent 事件 (https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement/endEvent_event) 在旧版本中运行良好,但在新版本中没有任何反应。其他一切都是一样的,我尝试将 animationEndHandler 方法简化为一个 console.log('hello')
我已经在 Mac 上的 Chrome 和 Safari 中进行了尝试,并在 iOS 上使用 Cordova 进行构建,所以我相信这不是浏览器问题,因为旧版本可以在相同的浏览器中运行。
只是因为我没有其他东西可以尝试,所以我也尝试了以下所有...
@endEvent="animationEndHandler"
@endevent="animationEndHandler"
@end-event="animationEndHandler"
@endevent="animationEndHandler()"
@end-event="animationEndHandler()"
v-on:endEvent="animationEndHandler()"
v-on:endEvent="animationEndHandler"
v-on:endevent="animationEndHandler()"
v-on:endevent="animationEndHandler"
v-on:end-event="animationEndHandler()"
v-on:end-event="animationEndHandler"
当我在 chrome 开发工具中检查 <animateTransform> 元素并查看右侧的事件侦听器选项卡时,我可以在其中看到“endevent”,并且在处理程序中引用了我的 animationEndHandler,但它似乎从来没有被调用。
如果有人可以就为什么这不再适用于 Vue 3 提供任何建议,我将不胜感激!
【问题讨论】:
标签: javascript vue.js svg quasar-framework svg-animate