小程序条形倒计时动画实现案例

本篇文章主要为大家详细介绍了小程序条形倒计时动画的实现案例,非常简单,大家可以尝试一下。

小程序条形倒计时动画实现案例

一、效果图如下:

小程序条形倒计时动画实现案例

 

二、wxml

 

  1. <view class='headpiece-time flex-row'>
  2. <text class='headpiece-txt'>倒计时:</text>
  3. <view class='headpiece-process'>
  4. <view class='headpiece-process-inner' style="width:{{width}}%"></view>
  5. </view>
  6. <text class='headpiece-num'>{{t}}</text>
  7. </view>
 

三、wxss

 

  1. .headpiece-num {
  2. position: absolute;
  3. top: -3rpx;
  4. right: -35rpx;
  5. width: 62rpx;
  6. height: 100%;
  7. text-align: center;
  8. }
  9.  
  10. .headpiece-time {
  11. position: relative;
  12. width: 305rpx;
  13. }
  14.  
  15. .headpiece-process {
  16. position: relative;
  17. width: 138rpx;
  18. height: 14rpx;
  19. margin-right: 14rpx;
  20. border: 4rpx solid #000;
  21. overflow: hidden;
  22. background: #fff4b2;
  23. }
  24.  
  25. .headpiece-process-inner {
  26. position: absolute;
  27. top: 0rpx;
  28. left: 0rpx;
  29. background: #f74242;
  30. height: 100%;
  31. transition: all 0.3s ease-out;
  32. }
 

四、index.js

 

  1. /**
  2. * 获取系统信息
  3. */
  4. getSystemInfo: function () {
  5. return new Promise((a, b) => {
  6. wx.getSystemInfo({
  7. success: function (res) {
  8. a(res)
  9. },
  10. fail: function (res) {
  11. b(res)
  12. }
  13. })
  14. })
  15. },
  16. /**
  17. * 进度条动画
  18. */
  19. countdown: function () {
  20. const requestAnimationFrame = callback => {
  21. return setTimeout(callback, 1000 / 60);
  22. }, cancelAnimationFrame = id => {
  23. clearTimeout(id);
  24. };
  25.  
  26. this.getSystemInfo().then(v => {
  27. let maxtime = this.data.maxtime,
  28. width = this.data.width,
  29. sTime = +new Date,
  30. _ts = this,
  31. temp,
  32. animate;
  33. (animate = () => {
  34. temp = requestAnimationFrame(() => {
  35. let time = maxtime * 1000,
  36. currentTime = +new Date,
  37. schedule = 1 - (currentTime - sTime) / time,
  38. schedule_1 = schedule <= 0 ? 0 : schedule,
  39. width = parseInt(schedule_1 * 100),
  40. t = parseInt((this.data.maxtime) * schedule_1)+1;
  41. _ts.setData({
  42. width: width,
  43. t:t
  44. });
  45. if (schedule <= 0) {
  46. cancelAnimationFrame(temp);
  47. _ts.setData({
  48. width: width,
  49. t: 0
  50. });
  51. return;
  52. } else {
  53. animate();
  54. };
  55. })
  56. })();
  57.  
  58. });
  59. },

 


【本站声明】
  1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
  2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。


KESION 科汛软件

KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。

KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!



▼点击进入科汛官网了解更多



热门标签
SaaS
上/下篇
  • 小程序二维码点餐开发案例

  • 小程序商城运营优化的方法

换一换相关推荐
精选内容
热点精选