今天在测试微信小程序动画的时候遇到了坑,需求是这样的点击时子元素从外部滑动回来,父元素的高度跟随子元素的高度改变. 实现子元素left为0并不复杂,但是改变父元素box的高度的时候却遇到了坑,因为是需要跟随子元素right的高度来改变父元素box的高度的,并且子元素right的高度不确定,我们需要先获取子元素的高度. 在改变高度的时候出错了,高度未改变.在测试时发现 var box = wx.createAnimation(option); // 创建动画 var obj = wx.create…
微信小程序动画之圆形进度条 上图: js: //获取应用实例 var app = getApp() var interval; var varName; var ctx = wx.createCanvasContext('canvasArcCir'); Page({ data: { }, drawCircle: function () { clearInterval(varName); function drawArc(s, e) { ctx.setFillStyle('white'); ctx…
众所周知,可以滑动的 scroll 组件在移动端非常的重要,几乎每个页面都要用到. 而小程序的 scroll-view 组件就比较坑了,非得指定一个高度才能正常使用.布局复杂的时候谁还给你算高度啊... 坑归坑,没办法,还是得用--既然官方要求必须传高度,那就想办法计算吧. 一.布局分析,推导公式 先给个示例图: 这是一个稍微复杂点的页面,最上面是两个 tab 标签,每个标签的页面是一个子组件.第二个子组件布局是上面一个标题,下面是 scroll-view . 再画个解剖图吧-- 页面分三部分,…
微信小程序动画API实现 index.js clicktap:function(){ var Animation=wx.createAnimation({ duration: 2000, }) Animation.rotateZ(-45).step() this.setData({ animation:Animation.export() }) } index.wxml <view> <view class="box" animation="{{animat…
用微信小程序自带的wx.createAnimation api可创建动画,该动画效果相比css写的动画更流畅. 栗子与用法,见官网:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html#wxcreateanimationobject 值得注意的是,直接使用其属性,比如animation.transle(0, -155).step(),如果我们期望的效果是从上往下,则该方式不满足,它会产生一个先向上再向下的效果,有悖预期.…
用微信小程序做了一个动画,效果如上图: 代码: js: Page({ data: { isPopping: false, animPlus: {}, animCollect: {}, animTranspond: {}, animInput: {}, animCloud:{}, aninWrite:{}, }, //点击弹出 plus: function () { if (this.data.isPopping) { //缩回动画 this.popp(); this.setData({ isPo…
为了让用户能尽可能多地使用小程序,也算是沉淀用户,现在很多小程序中,都有引导用户"添加到我的小程序"的操作提示,而且大多都是有动画效果.在高清壁纸推荐小程序首页,用户每次进入,都会在页面右上方,显示"添加小程序"的动画提示,如下图所示: 怎么实现这样的关注提示功能呢?首先,进入pages/index/index.wxml文件中,编写布局代码如下: 1 <!-- "添加小程序"的动画提示 --> 2 3 <view hidden=…
小程序 swiper 组件默认高度150px,并且如果子元素过高,swiper不会自适应高度 解决方案一: (总体来说不够完美,适合满屏滑动) 如果不是满屏的状态,用scroll-view IOS滑动兼容性不好,在IOS会有无法滑动的情况 <swiper class="content" style="height:{{height}}px" bindchange="change" current-item-id="{{docid}…
动画的基本使用: 旋转动画 缩放动画 偏移动画 倾斜动画 矩阵动画 动画API:wx.createAnimation(object) 示例:创建一个点击的动画 <view class="animation" animation="{{animationData}}" bindtap="clickBtn"> 动画 </view> page.js文件 //获取应用实例 const app = getApp() Page({ d…
嫌长版本: var rpx = 10000; var systemInfo = wx.getSystemInfoSync(); var px = rpx / 750 * systemInfo.windowWidth; -------------------  ------------------- 详解版: 分割线  -------------------  ------------------- 先理解两个概念. 分辨率有两种. [物理分辨率 rpx(responsive pixel)]即 手…