wxml:
B
A
wxs:
Page({
data: {
testAnimate: null,
},
onLoad() {
var self = this;
setTimeout(function() {
var animate = wx.createAnimation({
duration: 4000
});
// 做一个翻转动画
animate.rotateY(180).step();
self.setData({
testAnimate: animate.export()
})
}, 2000)
}
})
wxss:
.test-card {
background: #e2e2e2;font-size: 40px;
position: absolute;top: 0;left: 0;right: 0;bottom: 0;
}
.opposite-face {transform: rotateY(180deg);background: green;}
背景:我在做一个“卡片翻转”效果,用了A面和B面。翻转的时候旋转A和B的共同父元素。
1. 切换前,A面正面,没错
2. 转到背面的时候,为啥还是A?????
3. 直到动画完成,才闪出B
微信小程序开发者回答:
L***:
你好,请检查下 WXSS 中 backface-visibility 的设置。
s***:
backface-visibility是默认值,我没显式声明。即使我将页面全部元素都显式声明backface-visibility: visible也无变化(除了Page)。
s***:
就贴上的代码就能100%重现了,同样用于web没有问题。
主要问题在于,B在动画过程中不会显示,动画结束后才突然出现。
L***:
请考虑设置 backface-visibility: hidden
s***:
我按照你的提示,现在方案改为:将旋转动画同时应用于A和B,单独将A设置为backface-visibility: hidden。
这样可以达到效果,不知道这是不是你的本意。(我还是担心因为机器处理性能问题,使得两组动画的步伐没有一致)
s***:
我原来的方案是动画应用于父元素,A叠在B上,那父元素的背面就是B。这个方案没有必要用到backface-visibility: hidden。
L***:
3D渲染可能并不像你想象的那样,所以请用新的方案来做。
s***:系统记录
本文网址:http://www.91bianli.com/weixinxiaochengxu/28895.html