1.说明

需求是让一张图片不断重复地从下往上移动,实现方法由多种,wx.createAnimation、关键帧动画、swiper等都能实现

2.wx.createAnimation

最先想到的是使用wx.createAnimation()API,它的好处是兼容性好,只要小程序基础库版本不低于1.9.6就可以正常工作

wxml

<view style="width: 100%; height: 100%;"><image src="/pages/images/img1.png" animation="{{animationData}}" style="width: 100%; height: 300rpx;" />
</view>

js

Page({data: {animationData: null},onLoad(options) {let animation = wx.createAnimation({delay: 0,duration: 1000,timingFunction: 'linear',})this.animation = animationthis.moveDistance = 200animation.translateY(-this.moveDistance).step()this.setData({animationData: animation.export()})this.reAnimation()},reAnimation: function () {setInterval(() => {console.log("000")this.animation.translateY(this.moveDistance).step({duration: 0})this.setData({animationData: this.animation.export()})setTimeout(() => {this.animation.translateY(-this.moveDistance).step()this.setData({animationData: this.animation.export()})}, 60)}, 2000)},})

参考效果

2.animate关键帧动画

从小程序基础库 2.9.0 开始支持一种更友好的动画创建方式,用于代替旧的 wx.createAnimation。我们可以在js文件里直接调用this.animate(selector, keyframes, duration, callback)接口

wxml

<view style="width: 100%; height: 100%;"><image src="/pages/images/img1.png" id="bannerImg" style="width: 100%; height: 300rpx; margin-top: 300rpx;" />
</view>

js

Page({data: {},onLoad(options) {this.startAnimation()},startAnimation: function () {this.moveDistance = -300setInterval(() => {console.log("111")this.animate('#bannerImg', [{translateY: 0,},{translateY: this.moveDistance,},], 2000, function () {this.clearAnimation('#bannerImg', {}, function () {})}.bind(this))this.animate('#bannerImg', [{translateY: this.moveDistance,},{translateY: 0,},], 0, function () {this.clearAnimation('#bannerImg', {}, function () {})}.bind(this))}, 2000)}})

参考效果

3.swiper

虽然wx.createAnimation()能做的动画很多,但如果只是简单的垂直或水平方向上的平移动画,其实使用swiper组件也可以完成的,swiper从基础库1.0.0 开始支持

wxml

<swiper style="height: 200rpx;" autoplay='true' circular='true' interval='1000' duration='1000' vertical='true' easing-function='linear'><swiper-item wx:for="{{imgList}}" wx:key="key" wx:for-item="item"><image style="height: 200rpx; width: 100%;" src="{{item}}"></image></swiper-item>
</swiper>

js

Page({data: {imgList: ["/pages/images/img1.png","/pages/images/img1.png"],},onLoad: function (options) {},
})

参考效果

【小程序】微信小程序重复循环平移动画相关推荐

  1. 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏微信小程序

    这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...

  2. 微信小程序----微信小程序浏览pdf文件

    微信小程序----微信小程序浏览pdf文件 说明:通过wx.downloadFile,wx.openDocumen来实现打开pdf文件.只需在js操作即可. HTTP.Config.Request(' ...

  3. 小程序源码:炫酷手持滚动弹幕生成小工具微信小程序-多玩法安装简单

    这是一款滚动弹幕生成微信小程序源码 让弹幕文字在手机屏幕上跑起来,LED弹幕 手机弹幕,告白神奇,等 支持多种模板,每一种模板都支持自定义颜色等等 字体跳动,字体表白等等 另外用户也可以支持自定义文字 ...

  4. 微信小程序—微信小程序端支付代码

    只有微信小程序端的代码,如下 Page({data: {},onLoad: function (options) {// 页面初始化 options为页面跳转所带来的参数var that = this ...

  5. 小程序 | 微信小程序实现商品分类列表

    小程序 | 微信小程序实现商品分类列表 一.效果展示 二.代码实现 <!-- wxml --> <view class="container"> <! ...

  6. 生鲜小程序 微信小程序怎么制作 临沂修齐网络专业制作微信小程序

    生鲜小程序 微信小程序怎么制作 临沂修齐网络专业制作微信小程序 生鲜小程序开发功能介绍: 1.产品展示:通过扫码或者搜索小程序,用户可以看到不同品种的新鲜蔬菜.水果以及肉类. 2.定时收货:买家可以预 ...

  7. 微信小程序:娱乐小工具微信小程序源码下载支持多种流量主

    这应该是属于娱乐小工具呢还是属于工具箱类型就看你们怎么分辨了 当然啦说是娱乐也可以,里面功能应该也属于娱乐性 如果说是工具类型也可以,里面也属于工具吧 该程序由几个小功能组合而成如有: 网易云音乐下载 ...

  8. 抛硬币小游戏微信小程序源码

    简介: 抛硬币小游戏微信小程序源码 日常生活中遇到选择?抛个硬币看看天意吧! 有了这个小程序,起不起床拋一下,叫不叫外卖拋一下,打不打扫房间拋一下,让生活充满乐趣~ 人生决定不了的决定就让上天来决定吧 ...

  9. 小程序 | 微信小程序中使用位置API打开地图

    小程序 | 微信小程序中使用位置API打开地图 一.效果展示 二.代码实现 使用微信内置地图查看位置,调用wx.openLocationAPI,具体内容可以查看微信官方文档. // js let In ...

  10. 小程序 | 微信小程序实现循环嵌套数据选择

    小程序 | 微信小程序实现循环嵌套数据选择 一.效果展示 二.代码实现 在.wxml文件中,有时从后台传来的数据可能会出现数组嵌套数组的情况,需要利用wx:for嵌套实现数据的展示.这时,外层循环正常 ...

最新文章

  1. 出身农村,大专学历!大厂程序员站错队被架空,想离职,被媳妇拿离婚威胁,好死不如赖活着!...
  2. uLua中遇到的问题
  3. Python爬虫-爬取扇贝单词(Xpath)
  4. python装饰器函数-python3 函数:函数装饰器
  5. 4.Android的学习(了解代码与部分配置)
  6. SQL Server【三】连接查询
  7. 计算机组成原理节拍分为几种,计算机组成原理习题答案第七章
  8. 【多线程】:Synchronized和ReentrantLock的对比
  9. 浅谈网站遇到问题时的解决办法及提问技巧
  10. 记:Ubuntu 14.04 安装32位库支持库失败
  11. C语言之文件读写探究(二):fputc、fgetc、feof(一次读写一个字符(文本操作))
  12. unity ab包加载_Unity资源管理和打包
  13. Android 网络请求(OKHttp框架)
  14. 详解iOS开发之自定义View
  15. mfc cimage加载显示图片_OpenCV加载图片显示对应类型(位深度)方法
  16. Effective Java 思维导图
  17. SQL2008卸载。
  18. html5 web报表工具,Web报表工具的填报功能
  19. STM32单片机驱动L298N
  20. 计算机丢失msvcr100.dll解决办法,如何解决Msvcr100.dll丢失问题?两种方法可以解决...

热门文章

  1. tensorflow-----张量的合并
  2. c/c++中的内存分配器
  3. 如何用tushare复盘
  4. Python画皮卡丘(自创)
  5. Unity3D——游戏序列化
  6. 自学Vue之路——Vue介绍及基本语法
  7. PAT --- 1072.开学寄语 (20 分)
  8. MATLAB | 一文解决各类曲面交线绘制,包含三维隐函数曲面交线
  9. java 几分钟前几小时前几天前后转化为时间
  10. 《机器学习实战》代码记录--决策树