微信小程序学习:动画实现幻灯片播放照片效果
前言部分
目前市面上小程序越来越多,微信,支付宝,头条都推出了自己的小程序,但是由于微信小程序是最开始的,小程序刚出的时候我也了解过,当时写了个demo也写了一个小的新闻客户端,当时觉得小程序还是有点弱,所以后来就没在关注过小程序的发展,现在随着小程序的崛起(微信说线上小程序超过100万个了),这次下决心好好熟悉一下小程序的开发流程,可能不能全部都熟悉到,所以看到哪里就写到哪里吧。
常规操作,来图镇楼
内容部分
我主要实现一个类似Mac的屏幕保护效果,就是图片淡入淡出的效果吧。
这里主要用到的知识点:
- 动画的使用(Animation wx.createAnimation(Object object))
- view使用本地图片最为背景布局
- 一些零碎的知识点如:图片如何填充小程序的页面
这里主要介绍的部分说动画部分
如果只是切换图片很简单,但是因为我们需要加上一个渐入的动画效果,所以就稍微麻烦了一些。
我的方案:
首先我其实是使用了两个布局图片,一个是前景一个是后景,原因主要是为了让动画看起来更连贯自然。
下面是代码:
<!--index.wxml-->
<view class='imagesize' style="background:url('{{imageSrcBack}}') no-repeat;background-size:100% 100%;"><image src = '{{imageSrc}}' class='back_image' animation="{{attentionAnim}}"></image><view class ='child' bindtap='jumpImage' >登陆</view>
</view>
上面注意:view的background使用本地图片是通过URL来实现,据说因为背景似乎不支持本地图片的原因。
image标签是添加了animation属性,这里就是我们设置动画的地方。
下面看一下js中的代码:
//渐入,渐出实现 show: function (that) {var attentionAnim = wx.createAnimation({duration: 500,timingFunction:'linear'});var imageSrcTemp//设置循环动画that.attentionAnim = attentionAnimvar next = true;//这里面方法重复调用setInterval(function () {that.data.count++var index = that.data.count % 3console.log("动画" +"---" + index)that.attentionAnim.opacity(0).step()that.setData({//导出动画到指定控件animation属性attentionAnim: attentionAnim.export(),// imageSrc: that.data.imageSrcSet[index],imageSrcBack: that.data.imageSrcSet[index],})that.attentionAnim.opacity(1).step()setTimeout(function () {that.setData({attentionAnim: attentionAnim.export({duration: 3}),imageSrc: that.data.imageSrcSet[index],})}, 500)}.bind(that), 5000)},
上面的内容需要注意的地方是,为了使动画连续的动起来我使用了setInterval函数来定期调用动画设置的方法。
需要注意的是我其实播放了两次动画,因为我需要想染上一个图隐藏,设置完下一个图片后在让他显示出来,然后上面说到的view标签的background就是为了过度整个渐入效果使用的。
view的background设置的下一个将要显示的图片,当前图片消失后正好下一个正好显示出来,完美过渡。
第二个动画是为了把image在恢复成不透明的样式。
如上循环即可完成。
下面部分是我定义的变量,可以对照看比较好理解啦,虽然代码本来就没几行。哈哈
data: {jumpimage:'跳转到ocr页面',attentionAnim: {},imageSrc:"/image/one.jpg",imageSrcBack:"/image/tow.jpg",count:0,imageSrcSet: ["/image/one.jpg","/image/tow.jpg","/image/three.jpg",]},
结束部分
其实你会发现似乎前端的动画和android的动画都很相似,只是一些效果不一样,但是这个效果还是花费了较多的时间,主要是对中间的过度不满意,所以一致在调整这个效果。
补充一点:
view的背景图片在真机上没法显示的,所以我们在真机上需要把本地的图片链接设置成网络链接才行。我的效果图是在模拟器上所以不会出现问题。
或者
也可以把图片转码成base64格式进行设置
后续会更新一些小程序的坑,就当学个新技能了,顺便留下点东西(笔记)。
有问题欢迎纠正,谢谢啦
如果对你有帮助就点个赞把。
微信小程序学习:动画实现幻灯片播放照片效果相关推荐
- 2020微信小程序学习报告.2.17-3.1.(三)
微信小程序学习报告应学校课程要求,特此记录首先,小程序知识点: wx.request的使用:发https请求,一个小程序同时只能有5个网络请求,https的参数里,url是接口地址,method是请求 ...
- 微信小程序音频相关问题:播放,录音等相关
其实我也知道音频问题,十分尴尬,可以参考的资料极少,研究者也不多,所处的教程也基本是基础的内容,稍微深入几乎一篇都没有:所以前段时间我就准备弄的东西,一直没弄,因为没资料去弄,但是今天,看到一个同学遇 ...
- 微信小程序练手项目-音乐播放器
微信小程序练手项目-音乐播放器 该项目只适合练手,大佬请绕道 项目展示图: 项目介绍 微信小程序音乐播放器 页面: 音乐推荐.播放器.播放列表 功能: 播放.暂停.上一首.下一首.跳转播放列表.实时进 ...
- 微信小程序学习(1)-基础开发
学习微信小程序 微信小程序学习(1) 微信小程序学习(2) 文章目录 学习微信小程序 注册和初始化 小程序配置 tabbar导航栏 模板插样与WXML 循环渲染 条件渲染 模板 微信小程序脚本WXS ...
- 微信小程序:公告字幕滚动播放(文字跑马灯效果)
一.需求 公告文字仅限200字 公告内容仅限一行文字显示 公告内容持续滚动 二.解决思路 使用动画API(Animation.translate),完成移动动画 使用定时器API(setInterva ...
- 微信小程序学习Course 8 本地缓存API
微信小程序学习Course 8 本地缓存API 本篇随笔主要介绍微信小程序本地缓存API函数,微信小程序可以在本地缓存一些关键词数据,每一条关键词对应一段字符串.微信小程序提供了以下API函数. 8. ...
- uniapp 判断页面是否是横竖屏,解决微信小程序video组件全屏播放视频遮盖自定义播放控件问题
如果res.deviceOrientation 等于landscape 的话是竖屏,portrait则是横屏.因为用户每旋转一次屏幕就会触发里面的onShow钩子,因此在页面显示或横竖屏变化都会触发这 ...
- 微信小程序js数组初始化_微信小程序学习Course 3-2 JS数组对象学习
微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = ...
- 小程序 pagescrollto_微信小程序学习笔记(三)-- 首页及详情页开发
一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import 2 使用组 ...
最新文章
- 腾讯最新开源项目登上GitHub热榜:QQ音乐等18项业务都在用,日均PV过亿
- 百练OJ:2808:校门外的树
- ICallbackEventHandler使用
- filter in Fiori HANA live report
- MFC中给单文档程序添加背景图片
- leetcode题解48-旋转图像
- jq post 表单提交文件_Power Query 中使用POST方法进行网络抓取的尝试
- php mysql交互实例_php基于session实现数据库交互的类实例
- 股票历史数据-股票历史行情数据下载
- SVM多分类原理学习
- OSPF 多区域配置实例学习记录
- Pr---文字过多时显示不全和背景音乐过度处理(简单记录)
- 解决雷神笔记本风扇声音太响太吵问题
- python程序员专用壁纸_配置最漂亮的PyCharm界面,Python程序员必备!
- 通过Java向数据库存和取图片
- 实现类似微信中查找“附近的人”的功能!
- 方差分析 可汗学院统计学 笔记
- matlab如何求变换矩阵,如何用Matlab实现机器人的变换矩阵
- (四) l立创EDA之封装库的创建
- 易语言WEB开发教程3 模块化开发-常量
热门文章
- JavaWebDay11_BootStrap概述,快速入门,常用样式组件插件
- 【Linux】ln: failed to create symbolic link ‘*.so’: Operation not supported
- LINK : fatal error LNK1104: 无法打开文件“mfc140u.lib” 错误解决方案
- 【压缩感知合集6】压缩感知为什么可以恢复信号;为什么需要满足稀疏性条件、RIP条件、矩阵不相关等限制条件才可以恢复信号的逻辑分析
- Configuration 'compile' is obsolete and has been replaced with 'implementati解决方案
- ​第3大品牌「鞋王」沦陷,看历史王者的产品史
- 微软surface laptop2系统安装
- (2.6w字)网络知识点灵魂拷问(下)——前端面试必问
- optaplanner学习笔记(九)分数计算表现技巧
- python黑洞数——超简单方法O