微信小程序实现css动画效果

  最近在写微信小程序,然后之前网页也写过css动画实现,就记一下


1.依靠css的动画效果

  第一种实现动画效果的方法就是靠纯css来实现

@keyframes animations{
    0% {
        ...
    }

    ...

   100% {
        ...
    } 

}

.animation{
    /*animation: name duration timing-function delay iteration-count direction;*/   /*详情参见http://www.w3school.com.cn/cssref/pr_animation.asp*/
    animation: animations 3s liner;
}

  这种方法可以实现很复杂的效果,像背景图片自动轮播(用infinite配合delay)什么的。

  但是写起来比较复杂,而且没有办法根据事件触发,所以小程序推出了wx.creatAnimation()的API

2.依靠API的动画实现

  第二张方法就是依靠微信小程序提供的API来实现。

  wx.createAnimation(Object object)

  首先需要在wxml中设置好animation

<view animation=‘{{animationdata}}‘></view>

  然后在js里设置好动画数据

Page({
  data:{
    animationdata:{}
  },

  ...

})

  最后通过调用API实现动画

var animation = wx.createAnimation({
      duration: 2000,
      timingFunction: ‘ease‘,
      delay: 3000
    })

animation.translate(0, -height*3/10)

.opacity(0.7)

        .step()

this.setData({

animationData: animation.export()

})

 

  

  详见小程序官方文档https://developers.weixin.qq.com/miniprogram/dev/api/ui/animation/wx.createAnimation.html

  其实没什么好说的,小程序把繁琐的css封装成API了,这样的好处就是很方便,但是缺点就是实现复杂效果比较麻烦。。。

  值得一提的是animation.step(),同一step的动画会同时执行

animation.translate(0, -height*3/10)
              .opacity(0.7)
              .step()       //以上为同一步执行的的动画
              .opacity(1)
              .step()       //此为下一步的动画

//不同步骤的动画如果不加入参数是根据wx.creatAnimation(object)里的参数来的   

  

  最后说一下this.setdata里的animation.export()

  

  其实微信小程序的官方文档里讲解的很清楚了,特别是https://developers.weixin.qq.com/miniprogram/dev/api/ui/animation/Animation.html里的示例代码,看一下就明白了。

  差不多就这样。。。其实还有通过JavaScript实现动画效果的,那个我还没摸索过,只能写点自己比较了解的。

原文地址:https://www.cnblogs.com/passbysomeone/p/11108419.html

时间: 2024-07-28 17:15:24

微信小程序实现css动画效果的相关文章

微信小程序(7)--微信小程序连续旋转动画

微信小程序连续旋转动画 https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html <view animation="{{animationData}}" style="background:red;height:100rpx;width:100rpx; bottom:10px;position: absolute;"></view> Page({ data: { anim

微信小程序实现星星评价效果

代码实现 wxml文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!--pages/evaluatepage/evaluatepage.wxml--> <view class='container'>  <view class='evaluate_contant'>  <!--外层循环控制有几个评价条目 -->   <block wx:for='{{eval

使用movable-view制作可拖拽的微信小程序弹出层效果。

仿了潮汐睡眠小程序的代码.[如果有侵权联系删除 最近做的项目有个弹出层效果,类似音乐播放器那种.按照普通的做了一般感觉交互不是很优雅,设计妹子把潮汐睡眠的弹层给我看了看,感觉做的挺好,于是乘着有空仿照了一下. 首先善用度娘反编译弄到了源码,但是打不开.然后自己研究源码发现他们用的是movable-view实现的. 于是仿照着搭出了基础框架. 新建了个组件 wxml <!--components/playpanel/playpanel.wxml--> <movable-area style

微信小程序左右滚动公告栏效果

<view class='notice-wrap' hidden='{{hideNotice}}'> <view class='tongzhitext'> <text class="tongzhi-text">{{notice}}</text> </view> <view bindtap='switchNotice' class="closeView">x</view> </v

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序开发初探

一.关于微信小程序 1.1 小程序诞生的背景 张小龙说道: (1)一切以用户价值为依归→用户是微信的核心,所以微信中没有很多与客户无关的功能,比如QQ中的乱七八糟一系列东西. (2)让创造发挥价值→所有围绕微信的创造比如公众号都应该发挥其应有的价值. (3)用完即走的高效服务→这一点就厉害了word天,微信要打造一个以微信为中心的生态链,不以绑定用户为目标.比如生活中有一些不太常用的app,我们可能一年也使用不了几次,但是有时候就需要用到,微信就想要提供这样一个平台,让你可以在微信中使用这中所谓

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

微信小程序-整理各种小程序源码和资料免费下载

微信小程序整理下载 [小程序源码]微信小程序-车源宝微信版 [小程序源码]小程序-微赞社区(论坛demo) [小程序源码]微信小程序-收支账单 [小程序工具]微信小程序-日历 [小程序源码]小程序-在线聊天功能 [小程序源码]微信小程序-大好商城(新增功能天气查询和2048游戏) [小程序源码]微信小程序-查询号码归属地 [小程序源码]微信小程序-备忘录2 [小程序源码]微信小程序-QQ音乐 [小程序源码]小程序-货币汇率 [小程序源码]微信小程序-大学图书馆 [小程序源码]小程序-积分商城 [

微信小程序-学习总结

微信小程序尺寸单位 rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应.规定屏幕宽为750rpx. 设备               rpx换算成px(屏幕宽度/750)     px换算成rpx(750/屏幕宽度) iPhone5        1rpx = 0.42px                            1px = 2.34rpx iPhone6        1rpx = 0.5px                              1p