jquery理财贷款计算器
先放效果图,如下:
需要引入jquery ,bootstrap
jq代码如下:
function pCalculator(amount,term,rating,repayway){ var zhonghe = parseInt(amount),sum = 0,lixi,benjin,obj = {}; //等额本息
if(repayway == 1){ //每月还款
sum = amount * rating/12 * Math.pow((1 + rating/12), term) / ( Math.pow((1 + rating/12) ,term)-1); for(var i = 0; i < term; i++){ // 月利息
lixi = zhonghe * rating / 12; if(lixi < 0){lixi = 0;} // 本金
benjin = sum - lixi; obj[i] = {
"月份":i + 1,
"利息":lixi.toFixed(2),
"本金":benjin.toFixed(2),
"月收本息":sum.toFixed(2),
"剩余本金":zhonghe.toFixed(2),
"总利息":((sum * term) - amount).toFixed(2)
};
zhonghe = zhonghe - sum + lixi;
} return obj; } //等额本金
if(repayway == 2){ //每月本金
benjin = amount / term; for(var j = 0; j< term; j++){ //debugger;
//每月月供额
sum = (amount / term) + (amount - (amount - ((term -j) * benjin) ) ) * rating / 12; //每月本金
benjin = amount / term; //每月利息
lixi = sum - benjin; obj[j] = {
'月份':j + 1,
"利息":lixi.toFixed(2),
"本金":benjin.toFixed(2),
"剩余本金":zhonghe.toFixed(2),
"月收本息":sum.toFixed(2),
"总利息":((sum * term) - amount).toFixed(2)
}
//本金
zhonghe = zhonghe - benjin; } return obj; } }
调用方法如下:
$(".p-calculator .btn-danger").click(function(){
var cal = $(".p-calculator");
var tab = $(".invest-details-table1").find("tbody");
//投资金额
var amount = cal.find('input[name=amount]').val().trim();
//投资期限
var term = cal.find('input[name=term]').val().trim();
//年化利率
var rating = cal.find('input[name=rating]').val().trim() / 100;
//还款方式
var repayway = cal.find('select[name=repayway]').val();
//调用
var result = pCalculator(amount,term,rating,repayway);
var str = '';
for(var i =0; i< term; i++){
str += "<tr>";
str += "<td>"+ result[i]["月份"] +"</td>";
str +="<td>"+ result[i]["月收本息"]+"</td>";
str +="<td>"+ result[i]["本金"]+"</td>";
str +="<td>"+ result[i]["利息"]+"</td>";
str +="<td>"+ result[i]["剩余本金"] +"</td>";
str += "</tr>"; //console.log(parseFloat( result[i]["剩余本金"] ) , parseFloat(result[i]["总利息"]) , parseFloat( result[i]["月收本息"] ))
} $("#c1").countTo({
to: amount,
speed: 1500,
formatter : formatter1
});
$("#c2").countTo({
to: result[0]["总利息"],
speed: 1500,
formatter: formatter1
});
$("#c3").countTo({
to: result[0]["月收本息"],
speed: 1500,
formatter : formatter1
}); tab.empty().append(str); console.log(result); return false;
})
html代码如下:
<div class="bb2">
<div class="public-title">
<h2>理财计算器</h2>
</div> <form class="p-calculator">
<div>
<span class="pull-left">
<label>投资金额</label>
<input type="text" name="amount" class="form-control" placeholder="输入投资金额">元
</span>
<span class="pull-right">
<label>投资期限</label>
<input type="text" name="term" class="form-control" placeholder="输入投资期限">月
</span>
</div>
<div>
<span class="pull-left">
<label>年化利率</label>
<input type="text" name="rating" class="form-control" placeholder="利率范围5%~20%">%
</span>
<span class="pull-right">
<label>还款方式</label>
<select name="repayway" class="form-control">
<option value="1">等额本息</option>
<option value="2">等额本金</option>
</select>
</span>
</div>
<div class="text-center">
<button class="btn btn-danger">开始计算</button>
</div>
</form> </div> <div class="bb2 p-result">
<div class="public-title">
<h3>收益描述</h3>
</div>
<div class="row">
<div class="col-sm-4 text-center">
投资金额
<p><i id="c1">0</i><span>元</span></p>
</div>
<div class="col-sm-4 text-center">
应收利息
<p><i id="c2">0</i><span>元</span></p>
</div>
<div class="col-sm-4 text-center">
月收本金
<p><i id="c3">0</i><span>元</span></p>
</div>
</div>
<div class="result-table">
<h3>本息回款时间表</h3>
<table class="table invest-details-table1">
<thead>
<tr>
<td>期次</td>
<td>月收本息(元)</td>
<td>月收本金(元)</td>
<td>月收利息(元)</td>
<td>剩余本金(元)</td>
</tr>
</thead>
<tbody> </tbody>
</table> <ul>
<li>等额本息,即借款人每月以相等的金额偿还借款本息,也是银行房贷等采用的方法。因计算中存在四舍五入,最后一期还款金额与之前略有不同。</li>
<li>每月付息,到期还本,即借款人每月偿还固定利息,最后一期偿还全部本金。</li>
<li>注:因计算器采用了以50元为一份的计算方式,计算结果与2013年10月14日之前的债权存在偏差,具体情况以账户中显示的信息为准。</li>
</ul>
</div> </div>
css代码如下:
/* 计算器 */
.p-calculator{padding: 60px 120px 40px;}
.p-calculator > div:not(:last-child){overflow: hidden; margin-bottom: 30px;}
.p-calculator .form-control{display: inline-block; width: 235px; margin-right: 14px;}
.p-calculator select.form-control{margin-right: 27px;}
.p-calculator label{width: 80px; font-weight: normal; color: #666;}
.p-calculator span{color: #999;}
.p-calculator .btn-danger{padding: 11px 65px; margin-top: 20px;} .p-result{margin-top: 30px;}
.p-result .row{margin-top: 40px; color: #999; padding-bottom: 30px;}
.p-result .row p{color: #fb3d3d; font-size: 40px; font-family: fzlantinghei;}
.p-result .row p > span{color: #333; font-size: 18px;}
.p-result .row p > i{font-style: normal;} .result-table{border-top:1px solid #f0f0f0; padding:30px 24px;}
.result-table > h3{margin:0; font-size:16px; margin-bottom: 26px;}
.result-table ul{list-style: none; padding-left: 0;}
.result-table ul li{margin-bottom: 6px;}
完成!
看着有点晕,百度打包下载地址:http://pan.baidu.com/s/1gf7KKSj
提取码:y4sk
博主亲手打包 (>_<)
jquery理财贷款计算器的更多相关文章
- P2P系统哪家强,功能其实都一样
现在的P2P平台有好几千家了,了解了其中的几十家,发现用户端的P2P界面功能都差不多.下面来做个简要的总结: 1.通用功能 注册.登录 2.投资理财 针对理财人的投标.债权转让 3.借款申请 ...
- Web前端图表绘制JQuery插件jqplot
在此之前使用了Chart.js.Highcharts,首先了解一下这两款插件的优势与不足,然后再来了解jqplot. 1.Chart Chart中文官网:http://chartjs.cn/ 1.1优 ...
- jQuery 显示加载更多(节流) 实现预加载
(function () { var showMoreNChildren = function ($children, n) { //显示某jquery元素下的前n个隐藏的子元素 var $hidde ...
- jquery滚动到指定元素,模仿锚点
html <div class="pd-nav"> <div class="n-item active"> 保险服务 <i> ...
- jQuery/CSS3类似阿里巴巴的商品导航菜单实现教程
有两天没发表文章了,今天来说说利用jQuery和CSS3制作一款类似阿里巴巴左侧商品菜单导航,这款菜单看起来非常大气,可以展示非常多的产品类目,如果你在设计电子商务网站,不妨可以拿来参考,一下是效果图 ...
- jQuery实现的手机发送验证码倒计时效果代码分享
这是一款基于jquery实现的手机发送验证码倒计时效果代码,可实现实时显示秒数倒计时的功能,还可实现对手机号码格式验证的功能,是一款常用的网站注册发送手机验证码特效代码. 效果描述:注册一个网站,当需 ...
- jQuery Custom PopUp Window
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Jquery开发电商网站实战(带源码)
组件化思想,包含: 下拉菜单项封装 + 按需加载 搜索功能组件化,显示数据 + 下拉显示 + 缓存 分类导航按需加载 幻灯片效果组件封装及按需加载 商品楼层模块组件化 + 商品数据按需加载 + Tab ...
- Angular杂谈系列1-如何在Angular2中使用jQuery及其插件
jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...
随机推荐
- 一款MVC5+EF+Bootstrap搭建的后台通用管理系统模板
最近闲来无事,就用MVC5+EF+Bootstrap搭建了一个通用的后台管理系统的模板,里面使用到的技术包括: MVC,EF,T4模板批量生成 Jquery,jqGrid Bootstrap DDD ...
- Elixir - Hey, two great tastes that go great together!
这是Elixir的作者 José Valim 参与的一次技术访谈,很有料,我们可以了解Elixir的一些设计初衷,目标等等. 原文在: http://rubyrogues.com/114-rr-eli ...
- T-SQL 将动态SQL的结果集赋值到变量
1. 使用输出变量 ) ) DECLARE @counts int SET @city = 'New York' SET @sqlCommand = 'SELECT @cnt=COUNT(*) FRO ...
- PostgreSQL隐藏字段tableoid
问题来源: 今天群里有人问:tableoid字段在每行都有,而且一个表里面的值是重复的,这样不合理...... 因此做了一些分析: 1)创建了一个表 apple=# \d test_time Tabl ...
- Mysql 里面使用row_number() 的用法和注意
虽然使用不多,但是也有情况是需要在mysql 里面写语句开发功能的.在sql server 使用惯了,习惯了使用row_number() 函数进行排序,但是mysql 确没有这样一个函数.然后找到了p ...
- 关于Redis的ACID
事务是一个数据库必备的元素,对于redis也不例外,对于一个传统的关系型数据库来说,数据库事务满足ACID四个特性: A代表原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全 ...
- 【码在江湖】前端少侠的json故事(上)日月第一击
日月第一击 这是我前端生涯第一次和后台对接,其经历真是苦不堪言,多次绝处逢生,柳暗花明,可就是迟迟见不到那条村子.当然,最后我还是完成了这次对接.下面来聊一聊我这白痴一般的经历. 序章 话说天下大势, ...
- transactionManager 以及datasource type解析
transactionManager 在 MyBatis 中有两种事务管理器类型(也就是 type=”[JDBC|MANAGED]”): JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设 ...
- HTML 学习笔记 (drag & drop)
拖放(Drag & Drop)是一种常见的特性,即抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放.过去,我们用监听鼠标的Mousedown.Mouseo ...
- LCX端口转发实现内网突破
工具:lcx.exe 原理:当目标主机仅开放了web服务,而该服务又仅能供内网用户使用,外网用户根本无法直接访问.因此想要让外网用户能能够访问局域网中的系统服务,必须进行端口映射等操作才行.其原理就是 ...