在开发移动端的应用时,会用到很多的手势操作,比如滑动、长按等,为了方便开放者快速集成这些手势,mui内置了常用的手势事件,其中滑动应用是比较常见的应用操作,本篇文章将讲述如何利用滑动改变对应值进行计算和本金利息的方法。

案例要求:还款日期分为固定分期和随借随还,借款额度为1000~30000元,其中借款金额1000~6000的时候,可以随借随还且借款期不能超过45天,固定还款期可分为3、6、9期,超过6000元的时候分期数为9、12、18、24个月完成还款,根据利率计算以上各种情况下的每一期的还款。

首先建立基本样式,如下图所示

其运行代码如下,css代码此处篇幅有限不再赘述。。。。。。在此过程中,要注意考虑清楚借款金额大于6000的情况。

  1. <div class="mui-content mui-scroll-wrapper">
  2. <div class="mui-scroll">
  3. <div class="top">
  4. <div class="title">
  5. 良心高利贷(滑稽)
  6. </div>
  7. <div class="mui-text-center mui-h5" style="color: #fff;margin-top: 20px;">申请金额(元)</div>
  8. <div class="mui-text-center mui-h1 money" id="block-range-val">¥1000</div>
  9. <div style="height: 50px;margin-top: 50px;">
  10. <div style="width:50%;border-right: 1px solid #ccc;float: left;">
  11. <p id="txt_1" style="text-align: center;color: #fff;">日综合费率</p>
  12. <div id="txt_2" class="mui-text-center mui-h4" style="margin-top: -5px;">¥100/¥1000/1天</div>
  13. </div>
  14. <div style="width:48%;float: left;">
  15. <p id="txt_3" style="text-align: center;color: #fff;">最长借款时间</p>
  16. <div id="txt_4" class="mui-text-center mui-h4" style="margin-top: -5px;">45天</div>
  17. </div>
  18. </div>
  19. </div>
  20.  
  21. <div class="mui-input-row mui-input-range" style="padding: 10px 15px;">
  22. <input type="range" id='block-range' value="1000" min="1000" max="30000" step="100">
  23. </div>
  24. <div style="margin: 20px 10px;">
  25. <p>借款期限</p>
  26. <div id="btns_1">
  27. <button id="btn_1" class="mui-btn mui-btn-primary type">随借随还</button>
  28. <button id="btn_2" class="mui-btn mui-btn-primary mui-btn-grey type">3个月</button>
  29. <button id="btn_3" class="mui-btn mui-btn-primary mui-btn-grey type">6个月</button>
  30. <button id="btn_4" class="mui-btn mui-btn-primary mui-btn-grey type">9个月</button>
  31.  
  32. </div>
  33. <div id="btns_2" style="display: none;">
  34.  
  35. <button id="btn_5" class="mui-btn mui-btn-primary mui-btn-grey type">9个月</button>
  36. <button id="btn_6" class="mui-btn mui-btn-primary mui-btn-grey type">12个月</button>
  37. <button id="btn_7" class="mui-btn mui-btn-primary mui-btn-grey type">18个月</button>
  38. <button id="btn_8" class="mui-btn mui-btn-primary mui-btn-grey type">24个月</button>
  39.  
  40. </div>
  41. </div>
  42. </div>
  43. </div>

建立基本框架后,我们继续利用滑动手势和range实现其功能。在这一过程中,首先要实现各按键的功能,使其动起来

第一步,滑动按钮时,使借贷金额的值和对应分期下的还款金额发生改变,其运行代码如下

  1. var rangeList = document.querySelectorAll('input[type="range"]');
  2. var range = 1000;
  3. for (var i = 0, len = rangeList.length; i < len; i++) {
  4. rangeList[i].addEventListener('input', function() {
  5. range = this.value;
  6. document.getElementById(this.id + '-val').innerHTML = '¥' + this.value;
  7. document.getElementById("txt_3").innerHTML = '还款期数';
  8. document.getElementById("txt_1").innerHTML = '每月还款金额';
  9. if (this.value > 6000) {
  10. document.getElementById("btns_2").style.display = 'block';
  11. document.getElementById("btns_1").style.display = 'none';
  12. btn_disabled();
  13. document.getElementById("btn_8").classList.remove('mui-btn-grey');
  14.  
  15. document.getElementById("txt_2").innerHTML = '¥' + (range * 1.8196 / 24).toFixed(2);
  16. document.getElementById("txt_4").innerHTML = '24个月';
  17. } else {
  18. document.getElementById("btns_2").style.display = 'none';
  19. document.getElementById("btns_1").style.display = 'block';
  20. btn_disabled();
  21. document.getElementById("btn_4").classList.remove('mui-btn-grey');
  22. document.getElementById("txt_2").innerHTML = '¥' + (range * 1.2382 / 24).toFixed(2);
  23. document.getElementById("txt_4").innerHTML = '24个月';
  24. }
  25.  
  26. });
  27. }

经测试,显示效果如下

接下来,实现其它分期按钮的功能,在这一过程中,需要解决不同分期下的利率换算等问题,其运行代码如下

  1. mui('.mui-scroll-wrapper').scroll({
  2.  
  3. });
  4.  
  5. function btn_disabled() {
  6. document.getElementById("btn_1").classList.add('mui-btn-grey');
  7. document.getElementById("btn_2").classList.add('mui-btn-grey');
  8. document.getElementById("btn_3").classList.add('mui-btn-grey');
  9. document.getElementById("btn_4").classList.add('mui-btn-grey');
  10. document.getElementById("btn_5").classList.add('mui-btn-grey');
  11. document.getElementById("btn_6").classList.add('mui-btn-grey');
  12. document.getElementById("btn_7").classList.add('mui-btn-grey');
  13. document.getElementById("btn_8").classList.add('mui-btn-grey');
  14. }
  15. document.getElementById("btn_1").addEventListener('tap', function() {
  16. btn_disabled();
  17. this.classList.remove('mui-btn-grey');
  18. document.getElementById("txt_1").innerHTML = '日综合费率';
  19. document.getElementById("txt_3").innerHTML = '最长借款时间';
  20. document.getElementById("txt_2").innerHTML = '¥100/¥1000/1天';
  21. document.getElementById("txt_4").innerHTML = '45天';
  22.  
  23. });
  24. document.getElementById("btn_2").addEventListener('tap', function() {
  25. btn_disabled();
  26. this.classList.remove('mui-btn-grey');
  27. document.getElementById("txt_1").innerHTML = '每月还款金额';
  28. document.getElementById("txt_3").innerHTML = '还款期数';
  29. document.getElementById("txt_2").innerHTML = '¥' + (range * 2 / 3).toFixed(2);
  30. document.getElementById("txt_4").innerHTML = '3个月';
  31. });
  32. document.getElementById("btn_3").addEventListener('tap', function() {
  33. btn_disabled();
  34. this.classList.remove('mui-btn-grey');
  35. document.getElementById("txt_1").innerHTML = '每月还款金额';
  36. document.getElementById("txt_3").innerHTML = '还款期数';
  37. document.getElementById("txt_2").innerHTML = '¥' + (range * 3 / 6).toFixed(2);
  38. document.getElementById("txt_4").innerHTML = '6个月';
  39. });
  40. document.getElementById("btn_4").addEventListener('tap', function() {
  41. btn_disabled();
  42. this.classList.remove('mui-btn-grey');
  43. document.getElementById("txt_1").innerHTML = '每月还款金额';
  44. document.getElementById("txt_3").innerHTML = '还款期数';
  45. document.getElementById("txt_2").innerHTML = '¥' + (range * 4 / 9).toFixed(2);
  46. document.getElementById("txt_4").innerHTML = '9个月';
  47. });
  48. document.getElementById("btn_5").addEventListener('tap', function() {
  49. btn_disabled();
  50. this.classList.remove('mui-btn-grey');
  51. document.getElementById("txt_1").innerHTML = '每月还款金额';
  52. document.getElementById("txt_3").innerHTML = '还款期数';
  53. document.getElementById("txt_2").innerHTML = '¥' + (range * 4 / 9).toFixed(2);
  54. document.getElementById("txt_4").innerHTML = '9个月';
  55. });
  56. document.getElementById("btn_6").addEventListener('tap', function() {
  57. btn_disabled();
  58. this.classList.remove('mui-btn-grey');
  59. document.getElementById("txt_1").innerHTML = '每月还款金额';
  60. document.getElementById("txt_3").innerHTML = '还款期数';
  61. document.getElementById("txt_2").innerHTML = '¥' + (range * 5 / 12).toFixed(2);
  62. document.getElementById("txt_4").innerHTML = '12个月';
  63. });
  64. document.getElementById("btn_7").addEventListener('tap', function() {
  65. btn_disabled();
  66. this.classList.remove('mui-btn-grey');
  67. document.getElementById("txt_1").innerHTML = '每月还款金额';
  68. document.getElementById("txt_3").innerHTML = '还款期数';
  69. document.getElementById("txt_2").innerHTML = '¥' + (range * 6 / 18).toFixed(2);
  70. document.getElementById("txt_4").innerHTML = '18个月';
  71. });
  72. document.getElementById("btn_8").addEventListener('tap', function() {
  73. btn_disabled();
  74. this.classList.remove('mui-btn-grey');
  75. document.getElementById("txt_1").innerHTML = '每月还款金额';
  76. document.getElementById("txt_3").innerHTML = '还款期数';
  77. document.getElementById("txt_2").innerHTML = '¥' + (range * 7 / 24).toFixed(2);
  78. document.getElementById("txt_4").innerHTML = '24个月';
  79. });
  80. document.getElementById("apply").addEventListener('tap', function() {
  81. if(!require_login){
  82. mui.openWindow({
  83. id: 'business-list',
  84. url: 'business-list.html',
  85. show: {
  86. aniShow: 'pop-in',
  87. duration: 300
  88. },
  89. waiting: {
  90. autoShow: false
  91. }
  92. });
  93. return;
  94. }
  95.  
  96. })

其运行结果如下图

符合设计要求

利用MUI滑动进行利息计算(移动端APP显示)的更多相关文章

  1. 利用 MUI开发app, 如何实现侧滑菜单及其主体部分上下滑动

     利用mui开发APP 之侧滑菜单主内容滚动问题 MUI作为开发者常用的框架之一,其号称最接近原生APP体验的高性能前端框架.因此利用mui开发移动APP,可以为开发者提供很大的便利和接近原生的体验. ...

  2. 移动端App uni-app + mui 开发记录

    前言 uni-app uni-app是DCloud推出的终极跨平台解决方案,是一个使用Vue.js开发所有前端应用的框架,官网:https://uniapp.dcloud.io/ mui 号称最接近原 ...

  3. Android: ScrollView监听滑动到顶端和底端

    在项目中需要监听ScrollView滑动到顶端和底端的时候以实现自己的ScrollView,那么怎样去监听呢?今天查看了一下ScrollView的源码,找到了一种方法.先看一下源码中的overScro ...

  4. C语言 · 利息计算

    算法提高 利息计算   时间限制:1.0s   内存限制:512.0MB      编制程序完成下述任务:接受两个数,一个为用户一年期定期存款金额,一个为按照百分比格式表示的利率:程序计算一年期满 后 ...

  5. 报表开发工具Finereport移动端app js接口列表【全】

    应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...

  6. 【Android端 APP GPU过度绘制】GPU过度绘制及优化

    一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...

  7. 【转】移动端App测试实用指南

    转自:互联网那点事 英文原文: http://mobile.smashingmagazine.com/2012/10/22/a-guide-to-mobile-app-testing/ 测试人员常被看 ...

  8. 【转】【CDC翻客】移动端App测试实用指南

     译者注:本文从测试人员的角度出发,提出了100多个在测试移动App过程中需要考虑的问题.不管你是测试人员.开发.产品经理或是交互设计师,在进行移动App开发时,这些问题都很有参考价值.我和Queen ...

  9. 回顾2017系列篇(二):移动端APP设计趋势

    移动端APP在2017年经历了诸多的变化, 人工智能.聊天式的界面.响应式设计.虚拟现实(VR)和增强现实(AR)让设计师不断面临新的挑战.研究表明,用户每天耗费在手机和平板上的平均时长为158分钟, ...

随机推荐

  1. protobuf那些事

    大家好,俺又来写博客了.......上次剧情预告说,这次会写hive的博客.......好吧,那俺就不打算写hive了.......老码农路子就是要野(本人不老,不能说得影响了找女票)......这次 ...

  2. java企业架构 spring mvc +mybatis + KafKa+Flume+Zookeeper

    声明:该框架面向企业,是大型互联网分布式企业架构,后期会介绍linux上部署高可用集群项目. 项目基础功能截图(自提供了最小部分)      平台简介        Jeesz是一个分布式的框架,提供 ...

  3. kafka的高可用和一致性探究

    一.kafka基础 本篇文章讨论的kafka版本是目前最新版 0.10.1.0. 1.1 kafka种的KafkaController 所有broker会通过ZooKeeper选举出一个作为Kafka ...

  4. Servlet起步

    什么是Servlet Servlet是sun公司制定的用来扩展web服务器功能的组件规范,通俗理解为遵循Servlet规范开发的实现了某个功能的Java组件.该组件没有 main 方法,不能独立地运行 ...

  5. Spring MVC和Struts2的比较

    Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置.spring3 mvc可以认为已经100%零配置了(除了配置spring mvc ...

  6. 写给Android App开发人员看的Android底层知识(5)

    (十)Service Service有两套流程,一套是启动流程,另一套是绑定流程.我们做App开发的同学都应该知道. 1)在新进程启动Service 我们先看Service启动过程,假设要启动的Ser ...

  7. 基于类(Java)和基于原理(JavaScript)的对象系统的比较

    Java:面向对象编程语言,吸收了C++语言的各种优点,丢掉了C++让人头疼的多继承.指针等概念.具有功能强大和简单易用的两大特征.Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移 ...

  8. [HDU1002] A + B Problem II

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  9. JavaScript面向对象轻松入门之抽象(demo by ES5、ES6、TypeScript)

    抽象的概念 狭义的抽象,也就是代码里的抽象,就是把一些相关联的业务逻辑分离成属性和方法(行为),这些属性和方法就可以构成一个对象. 这种抽象是为了把难以理解的代码归纳成与现实世界关联的概念,比如小狗这 ...

  10. springmvc 之 helloworld

    构建SPRINGMVC主要分为几个部分(大体方式为创建并配置2个XML文件.一个JAVA文件及一个JSP文件). 一.创建动态JAVA WEB项目  //创建项目并导入JAR包. 二.创建并配置ser ...