开发小程序,实现动画功能,有两种实现方式,下面来看看具体怎么做:
JS动画利用小程序API提供的wx.createAnimation(OBJECT)
实现,API中是这样说:创建一个动画实例animation。调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation
属性。
wxml
<view class="animation">
<view class="dis-flex">
<view class='flex3' animation="{{lAnimate}}">{{start}}</view>
<view class='flex1' bindtap="trigger">
<em class='iconfont switch-icon'></em>
</view>
<view class='flex3' animation="{{rAnimate}}">{{end}}</view>
</view>
</view>
css
@font-face {
font-family: 'iconfont'; /* project id 703892 */
src: url('//at.alicdn.com/t/font_703892_u8zob8nchpf.eot');
src: url('//at.alicdn.com/t/font_703892_u8zob8nchpf.eot?#iefix') format('embedded-opentype'),
url('//at.alicdn.com/t/font_703892_u8zob8nchpf.woff') format('woff'),
url('//at.alicdn.com/t/font_703892_u8zob8nchpf.ttf') format('truetype'),
url('//at.alicdn.com/t/font_703892_u8zob8nchpf.svg#iconfont') format('svg');
}
.iconfont {
font-family:"iconfont" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.animation{
margin-top: 20rpx;
padding: 10rpx 30rpx;
}
.dis-flex{
display: flex;
}
.flex1{
flex: 1;
text-align: center;
}
.flex3{
flex: 3;
text-align: center;
}
.switch-icon:before {
content: "\e8c8";
}
js
Page({
data: {
lAnimate: '',
rAnimate: '',
start: '北京',
end: '深圳'
},
trigger() {
let vm = this;
let option = {
duration: 100, // 动画执行时间
timingFunction: 'ease-in' // 动画执行效果
};
var lanimation = wx.createAnimation(option); // 创建动画
var ranimation = wx.createAnimation(option);
// 起点
lanimation.translateX(100);
lanimation.opacity(0.1).step();
// 终点
ranimation.translateX(-100);
ranimation.opacity(0.1).step();
vm.setData({
lAnimate: lanimation.export(),// 开始执行动画
rAnimate: ranimation.export() // 开始执行动画
})
setTimeout(() => {
// 起点
lanimation.translateX(0);
lanimation.opacity(1).step();
// 终点
ranimation.translateX(0);
ranimation.opacity(1).step();
var temp = vm.data.start;
vm.setData({
lAnimate: lanimation.export(),// 开始执行动画
rAnimate: ranimation.export(),// 开始执行动画
end: temp,
start: vm.data.end
})
}, 100);
}
})
CSS3动画
CSS3动画还是用animation
来完成,需要注意的是只需要@-webkit-keyframes
,不需要其他的,如@-moz-keyframes
,运用会报错
@-webkit-keyframes lanimation
{
from {left:px2rpx(0px);}
to {left:px2rpx(140px);}
}
.start{
animation lanimation 2.5s ease-in infinite
animation-delay 0.6s
}
公告
以后每月5、15、25号更新原创文章,内容不限,喜欢小编的可以点击关注,也可在下方评论留言,你喜欢什么内容,小编根据大家喜欢的内容尝试更新