利用MUI滑动进行利息计算(移动端APP显示)
在开发移动端的应用时,会用到很多的手势操作,比如滑动、长按等,为了方便开放者快速集成这些手势,mui内置了常用的手势事件,其中滑动应用是比较常见的应用操作,本篇文章将讲述如何利用滑动改变对应值进行计算和本金利息的方法。
案例要求:还款日期分为固定分期和随借随还,借款额度为1000~30000元,其中借款金额1000~6000的时候,可以随借随还且借款期不能超过45天,固定还款期可分为3、6、9期,超过6000元的时候分期数为9、12、18、24个月完成还款,根据利率计算以上各种情况下的每一期的还款。
首先建立基本样式,如下图所示
其运行代码如下,css代码此处篇幅有限不再赘述。。。。。。在此过程中,要注意考虑清楚借款金额大于6000的情况。
<div class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">
<div class="top">
<div class="title">
良心高利贷(滑稽)
</div>
<div class="mui-text-center mui-h5" style="color: #fff;margin-top: 20px;">申请金额(元)</div>
<div class="mui-text-center mui-h1 money" id="block-range-val">¥1000</div>
<div style="height: 50px;margin-top: 50px;">
<div style="width:50%;border-right: 1px solid #ccc;float: left;">
<p id="txt_1" style="text-align: center;color: #fff;">日综合费率</p>
<div id="txt_2" class="mui-text-center mui-h4" style="margin-top: -5px;">¥100/¥1000/1天</div>
</div>
<div style="width:48%;float: left;">
<p id="txt_3" style="text-align: center;color: #fff;">最长借款时间</p>
<div id="txt_4" class="mui-text-center mui-h4" style="margin-top: -5px;">45天</div>
</div>
</div>
</div> <div class="mui-input-row mui-input-range" style="padding: 10px 15px;">
<input type="range" id='block-range' value="1000" min="1000" max="30000" step="100">
</div>
<div style="margin: 20px 10px;">
<p>借款期限</p>
<div id="btns_1">
<button id="btn_1" class="mui-btn mui-btn-primary type">随借随还</button>
<button id="btn_2" class="mui-btn mui-btn-primary mui-btn-grey type">3个月</button>
<button id="btn_3" class="mui-btn mui-btn-primary mui-btn-grey type">6个月</button>
<button id="btn_4" class="mui-btn mui-btn-primary mui-btn-grey type">9个月</button> </div>
<div id="btns_2" style="display: none;"> <button id="btn_5" class="mui-btn mui-btn-primary mui-btn-grey type">9个月</button>
<button id="btn_6" class="mui-btn mui-btn-primary mui-btn-grey type">12个月</button>
<button id="btn_7" class="mui-btn mui-btn-primary mui-btn-grey type">18个月</button>
<button id="btn_8" class="mui-btn mui-btn-primary mui-btn-grey type">24个月</button> </div>
</div>
</div>
</div>
建立基本框架后,我们继续利用滑动手势和range实现其功能。在这一过程中,首先要实现各按键的功能,使其动起来
第一步,滑动按钮时,使借贷金额的值和对应分期下的还款金额发生改变,其运行代码如下
var rangeList = document.querySelectorAll('input[type="range"]');
var range = 1000;
for (var i = 0, len = rangeList.length; i < len; i++) {
rangeList[i].addEventListener('input', function() {
range = this.value;
document.getElementById(this.id + '-val').innerHTML = '¥' + this.value;
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_1").innerHTML = '每月还款金额';
if (this.value > 6000) {
document.getElementById("btns_2").style.display = 'block';
document.getElementById("btns_1").style.display = 'none';
btn_disabled();
document.getElementById("btn_8").classList.remove('mui-btn-grey'); document.getElementById("txt_2").innerHTML = '¥' + (range * 1.8196 / 24).toFixed(2);
document.getElementById("txt_4").innerHTML = '24个月';
} else {
document.getElementById("btns_2").style.display = 'none';
document.getElementById("btns_1").style.display = 'block';
btn_disabled();
document.getElementById("btn_4").classList.remove('mui-btn-grey');
document.getElementById("txt_2").innerHTML = '¥' + (range * 1.2382 / 24).toFixed(2);
document.getElementById("txt_4").innerHTML = '24个月';
} });
}
经测试,显示效果如下
接下来,实现其它分期按钮的功能,在这一过程中,需要解决不同分期下的利率换算等问题,其运行代码如下
mui('.mui-scroll-wrapper').scroll({ }); function btn_disabled() {
document.getElementById("btn_1").classList.add('mui-btn-grey');
document.getElementById("btn_2").classList.add('mui-btn-grey');
document.getElementById("btn_3").classList.add('mui-btn-grey');
document.getElementById("btn_4").classList.add('mui-btn-grey');
document.getElementById("btn_5").classList.add('mui-btn-grey');
document.getElementById("btn_6").classList.add('mui-btn-grey');
document.getElementById("btn_7").classList.add('mui-btn-grey');
document.getElementById("btn_8").classList.add('mui-btn-grey');
}
document.getElementById("btn_1").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '日综合费率';
document.getElementById("txt_3").innerHTML = '最长借款时间';
document.getElementById("txt_2").innerHTML = '¥100/¥1000/1天';
document.getElementById("txt_4").innerHTML = '45天'; });
document.getElementById("btn_2").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 2 / 3).toFixed(2);
document.getElementById("txt_4").innerHTML = '3个月';
});
document.getElementById("btn_3").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 3 / 6).toFixed(2);
document.getElementById("txt_4").innerHTML = '6个月';
});
document.getElementById("btn_4").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 4 / 9).toFixed(2);
document.getElementById("txt_4").innerHTML = '9个月';
});
document.getElementById("btn_5").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 4 / 9).toFixed(2);
document.getElementById("txt_4").innerHTML = '9个月';
});
document.getElementById("btn_6").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 5 / 12).toFixed(2);
document.getElementById("txt_4").innerHTML = '12个月';
});
document.getElementById("btn_7").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 6 / 18).toFixed(2);
document.getElementById("txt_4").innerHTML = '18个月';
});
document.getElementById("btn_8").addEventListener('tap', function() {
btn_disabled();
this.classList.remove('mui-btn-grey');
document.getElementById("txt_1").innerHTML = '每月还款金额';
document.getElementById("txt_3").innerHTML = '还款期数';
document.getElementById("txt_2").innerHTML = '¥' + (range * 7 / 24).toFixed(2);
document.getElementById("txt_4").innerHTML = '24个月';
});
document.getElementById("apply").addEventListener('tap', function() {
if(!require_login){
mui.openWindow({
id: 'business-list',
url: 'business-list.html',
show: {
aniShow: 'pop-in',
duration: 300
},
waiting: {
autoShow: false
}
});
return;
} })
其运行结果如下图
符合设计要求
利用MUI滑动进行利息计算(移动端APP显示)的更多相关文章
- 利用 MUI开发app, 如何实现侧滑菜单及其主体部分上下滑动
利用mui开发APP 之侧滑菜单主内容滚动问题 MUI作为开发者常用的框架之一,其号称最接近原生APP体验的高性能前端框架.因此利用mui开发移动APP,可以为开发者提供很大的便利和接近原生的体验. ...
- 移动端App uni-app + mui 开发记录
前言 uni-app uni-app是DCloud推出的终极跨平台解决方案,是一个使用Vue.js开发所有前端应用的框架,官网:https://uniapp.dcloud.io/ mui 号称最接近原 ...
- Android: ScrollView监听滑动到顶端和底端
在项目中需要监听ScrollView滑动到顶端和底端的时候以实现自己的ScrollView,那么怎样去监听呢?今天查看了一下ScrollView的源码,找到了一种方法.先看一下源码中的overScro ...
- C语言 · 利息计算
算法提高 利息计算 时间限制:1.0s 内存限制:512.0MB 编制程序完成下述任务:接受两个数,一个为用户一年期定期存款金额,一个为按照百分比格式表示的利率:程序计算一年期满 后 ...
- 报表开发工具Finereport移动端app js接口列表【全】
应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...
- 【Android端 APP GPU过度绘制】GPU过度绘制及优化
一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...
- 【转】移动端App测试实用指南
转自:互联网那点事 英文原文: http://mobile.smashingmagazine.com/2012/10/22/a-guide-to-mobile-app-testing/ 测试人员常被看 ...
- 【转】【CDC翻客】移动端App测试实用指南
译者注:本文从测试人员的角度出发,提出了100多个在测试移动App过程中需要考虑的问题.不管你是测试人员.开发.产品经理或是交互设计师,在进行移动App开发时,这些问题都很有参考价值.我和Queen ...
- 回顾2017系列篇(二):移动端APP设计趋势
移动端APP在2017年经历了诸多的变化, 人工智能.聊天式的界面.响应式设计.虚拟现实(VR)和增强现实(AR)让设计师不断面临新的挑战.研究表明,用户每天耗费在手机和平板上的平均时长为158分钟, ...
随机推荐
- 也许是目前实现最好的js模拟滚动插件
finger-mover 是一个集成 Fingerd(移动端以手指为单位的事件管理方案) 和 Moved(微型运动方案) 为一体的移动端动效平台,finger-mover 本身并不能为你做什么,但是附 ...
- MarkDown语法 学习笔记 效果源码对照
MarkDown基本语法学习笔记 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 下面将对Markdown的基本使用做一个介绍 目 ...
- 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因
很多童鞋在启动mysql的时候,碰到过这个错误, 首先,澄清一点,出现这个错误的前提是:通过服务脚本来启动mysql.通过mysqld_safe或mysqld启动mysql实例并不会报这个错误. 那么 ...
- ImageIO.write不好用了
今天奇怪的发现这个下面不好使了,即用ImageIO把图片写入网络流中,第一次还好使,对于同一个SocketOutputStream,第二次使用write方法就不好使了,变成了死等. 网上搜了资料搜不到 ...
- 13、Java菜单条、菜单、菜单项
13.Java菜单条.菜单.菜单项 一般用Java做界面时,都得牵涉到菜单条.菜单.菜单项的设计.菜单项放在菜单里,菜单放在菜单条里,且其字体均可设置. 13.1.菜单条(Menubar) Frame ...
- 转义字符及URI编码
URL中的转义字符 当URL的参数中出现诸如+,空格,/,?,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数. 解决办法:将这些字符转化成服务器可以识别 ...
- HTML5 进阶系列:canvas 动态图表
前言 canvas 强大的功能让它成为了 HTML5 中非常重要的部分,至于它是什么,这里就不需要我多作介绍了.而可视化图表,则是 canvas 强大功能的表现之一. 现在已经有了很多成熟的图表插件都 ...
- 在微信小程序中学习flex布局
网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就 ...
- javaWeb学习总结(3)- Servlet基础
Servlet的应用 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web浏览器或其他http客户程序发出请求. 与http服务器上的数据库或应用程 ...
- SPFA求单源最短路径
序 求最短路径的算法有很多,各有优劣. 比如Dijkstra(及其堆(STL-priority_queue)优化),但是无法处理负环的情况: 比如O(n^3)的Floyd算法:比如Bellman-Fo ...