小程序模板网

微信小程序开发效果:animation心跳动画

发布时间:2017-12-28 15:24 所属栏目:小程序开发教程

本文实例为大家分享了微信小程序开发animation心跳动画,供大家参考,具体内容如下

1、微信小程序开发animation心跳动画

wxml文件中:

?
1
2
3
4
5
6
7
8
9
10
11
12
<view class="bottomViewItem">
  <view class="bottomMiddleHeaderView" bindtap="voteClick" data-id="value">
   <view class="bottomMiddleHeaderItem" animation="{{animationMiddleHeaderItem}}">
   <!-- 心跳 -->
   <view class="bottomMiddleHeaderItemSubView">
    <image src="/images/detail_vote_heart.png" style="width:32rpx; height:32rpx;" animation="{{animationMiddleHeaderItem}}"></image>
   </view>
   <!-- 投票文字 -->
   <view class="bottomMiddleHeaderItemSubView">投票</view>
   </view>
  </view>
 </view>

js文件中:

?
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
26
27
28
29
30
31
32
33
34
35
36
37
38
// 页面渲染完成
 onReady: function () {
  var circleCount = 0;
  // 心跳的外框动画
  this.animationMiddleHeaderItem = wx.createAnimation({
  duration:1000, // 以毫秒为单位
  /**
  * http://cubic-bezier.com/#0,0,.58,1
  * linear 动画一直较为均匀
  * ease 从匀速到加速在到匀速
  * ease-in 缓慢到匀速
  * ease-in-out 从缓慢到匀速再到缓慢
  *
  * step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过
  * step-end 保持 0% 的样式直到动画持续时间结束  一闪而过
  */
  timingFunction: 'linear',
  delay: 100,
  transformOrigin: '50% 50%',
  success: function (res) {
  }
  });
  setInterval(function() {
  if (circleCount % 2 == 0) {
   this.animationMiddleHeaderItem.scale(1.15).step();
  } else {
   this.animationMiddleHeaderItem.scale(1.0).step();
  }
  this.setData({
   animationMiddleHeaderItem: this.animationMiddleHeaderItem.export()
  });
  circleCount++;
  if (circleCount == 1000) {
   circleCount = 0;
  }
  }.bind(this), 1000);
 },

2、微信显示倒计时

wxml文件中:

?
1
2
3
4
5
6
7
<!--倒计时 -->
 <view class="countDownTimeView countDownAllView" >
 <view class="voteText countDownTimeText">{{countDownDay}}天</view>
 <view class="voteText countDownTimeText">{{countDownHour}}时</view>
 <view class="voteText countDownTimeText">{{countDownMinute}}分</view>
 <view class="voteText countDownTimeText">{{countDownSecond}}秒</view>
 </view>

js文件中:

?
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Page( {
 data: {
 windowHeight: 654,
 maxtime: "",
 isHiddenLoading: true,
 isHiddenToast: true,
 dataList: {},
 countDownDay: 0,
 countDownHour: 0,
 countDownMinute: 0,
 countDownSecond: 0,
 },
 //事件处理函数
 bindViewTap: function() {
 wx.navigateTo( {
  url: '../logs/logs'
 })
 },
 onLoad: function() {
 this.setData( {
  windowHeight: wx.getStorageSync( 'windowHeight' )
 });
 },
 // 页面渲染完成后 调用
 onReady: function () {
 var totalSecond = 1505540080 - Date.parse(new Date())/1000;
 var interval = setInterval(function () {
  // 秒数
  var second = totalSecond;
  // 天数位
  var day = Math.floor(second / 3600 / 24);
  var dayStr = day.toString();
  if (dayStr.length == 1) dayStr = '0' + dayStr;
  // 小时位
  var hr = Math.floor((second - day * 3600 * 24) / 3600);
  var hrStr = hr.toString();
  if (hrStr.length == 1) hrStr = '0' + hrStr;
  // 分钟位
  var min = Math.floor((second - day * 3600 *24 - hr * 3600) / 60);
  var minStr = min.toString();
  if (minStr.length == 1) minStr = '0' + minStr;
  // 秒位
  var sec = second - day * 3600 * 24 - hr * 3600 - min*60;
  var secStr = sec.toString();
  if (secStr.length == 1) secStr = '0' + secStr;
  this.setData({
  countDownDay: dayStr,
  countDownHour: hrStr,
  countDownMinute: minStr,
  countDownSecond: secStr,
  });
  totalSecond--;
  if (totalSecond < 0) {
  clearInterval(interval);
  wx.showToast({
   title: '活动已结束',
  });
  this.setData({
   countDownDay: '00',
   countDownHour: '00',
   countDownMinute: '00',
   countDownSecond: '00',
  });
  }
 }.bind(this), 1000);
 },
 //cell事件处理函数
 bindCellViewTap: function (e) {
 var id = e.currentTarget.dataset.id;
 wx.navigateTo({
  url: '../babyDetail/babyDetail?id=' + id
 });
 }
})

效果图:


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/18293.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询