我正在为openui5/sapui5实现一些自定义组件.
对于组件,我希望在最初加载时有一个css动画.这是非常直接的,因为我添加了以下css:
@-webkit-keyframes card-in-animation {
from {
-webkit-transform: translateY(50em) rotate(5deg);
opacity:0;
}
}
.card {
animation:card-in-animation 0.7s .2s ease-out both;
-webkit-animation:card-in-animation 0.7s .2s ease-out both;
}
Run Code Online (Sandbox Code Playgroud)
当openui5框架由于某种原因重新呈现组件时,会出现问题.
然后销毁DOM元素并创建新元素.这会导致动画再次触发.
要在实践中看到这一点:
在openui5中避免这种情况的首选方法是什么?
在渲染器内部,您可以设置此控件/组件渲染一次的标志.第二次你将遇到这个渲染器,你将检查这个标志,并不会渲染这个特定的类.
if(!oControl._renderedOnce) {
oRm.addClass('rotate');
oControl._renderedOnce = true;
}
oRm.writeClasses();
Run Code Online (Sandbox Code Playgroud)