Vue.js实现价格计算器功能


Posted in Javascript onMarch 30, 2020

本文实例为大家分享了Vue.js实现价格计算器功能的具体代码,供大家参考,具体内容如下

实现效果:

Vue.js实现价格计算器功能

实现代码及注释:

<!DOCTYPE html>
<html>
<head>
 <title>价格计算器</title>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <style type="text/css">
 
 /* 隐藏未编译的数据绑定,直到Vue实例成功加载 */
 [v-cloak]{
 display: none;
 }
 *{
 padding: 0;
 margin: 0;
 }
 body{
 font: 15px/1.3 "微软雅黑";
 color: #545b64;
 text-align: center;
 }
 a, a:visited{
 outline: none;
 color: #389dc1;
 }
 a:hover{
 text-decoration: none;
 }
 section, footer, header, aside, nav{
 display: block;
 }
 
 /*-------------------------
 The order form
 --------------------------*/
 
 form{
 background-color: #d5d5d5;
 border-radius: 10px;
 box-shadow: 0 1px 1px #ccc;
 width: 400px;
 padding: 35px 45px;
 margin: 50px auto;
 box-shadow: 1px 0px 20px #f5f5f5;
 }
 
 form h1{
 color:#fff;
 font-size: 55px;
 font-family: "微软雅黑"
 font-weight: normal;
 line-height:1;
 text-shadow:2px 3px 0 rgba(0,0,0,0.1);
 font-weight: normal;
 }
 
 form ul{
 list-style:none;
 color:#fff;
 font-size:20px;
 font-weight:bold;
 text-align: left;
 margin:20px 0 15px;
 }
 
 form ul li{
 padding:15px 30px;
 background-color:#03c03c;
 margin-bottom:10px;
 box-shadow:0 1px 1px rgba(0,0,0,0.1);
 cursor:pointer;
 }
 
 form ul li span{
 float:right;
 }
 
 form ul li.active{
 background-color: orange;
 }
 
 div.total{
 border-top:1px solid rgba(255,255,255,0.5);
 padding:15px 30px;
 font-size:20px;
 font-weight:bold;
 text-align: left;
 color:#fff;
 text-shadow: 2px 2px 2px rgba(0,0,0,0.1);
 }
 
 div.total span{
 float:right;
 }
 </style>
 
</head>
<body>
 
<!-- v-cloak隐藏所有没有编译过的数据绑定,直到vue实例准备好 -->
 
<form id="main" v-cloak>
 <h1>价格计算器</h1>
 <ul>
 
 <!-- 循环这个服务数组,分配一个点击句柄,并且设置或移除active class -->
 <li v-for="service in services" v-on:click="toggleActive(service)" v-bind:class="{'active': service.active}">
 
 <!-- 显示这个数组中每个实体的名称和价格格式化, Vue有一个内置的货币筛选器用于对价格进行 -->
 
 {{service.name}} <span>{{service.price | currency}}</span>
 
 </li>
 </ul>
 
 <div class="total">
 
 <!-- 计算所有选定商品的总价格,并且格式化为货币显示方式 -->
 
 总价: <span>{{total() | currency}}</span>
 </div>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.5/vue.min.js"></script>
<script type="text/javascript">
 
 // 定义一个常规过滤器currency
 Vue.filter('currency', function(value){
 return '¥' + value.toFixed(2);
 });
 
 var demo = new Vue({
 el: '#main',
 data: {
 // 定义model属性,view将会循环
 // 通过services数组产生一个li
 // 定义services每一项的元素
 
 services: [
 {
  name: "网站开发",
  price: 300,
  active: true
 },
 {
  name: "设计",
  price: 400,
  active: false
 },
 {
  name: "一体化整合",
  price: 250,
  active: false
 },
 {
  name: "操作培训",
  price: 220,
  active: false
 }
 ]
 },
 
 methods: {
 toggleActive: function(s){
 s.active = !s.active;
 },
 total: function(){
 var total = 0;
 this.services.forEach(function(s){
  if(s.active){
  total+=s.price;
  }
 });
 return total;
 }
 }
 });
</script>
 
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实时获取系统当前时间实例代码
Jun 28 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
javascript 中__proto__和prototype详解
Nov 25 Javascript
css如何让浮动元素水平居中
Aug 07 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
BootStrap按钮标签及基本样式
Nov 23 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 Javascript
React通过redux-persist持久化数据存储的方法示例
Feb 14 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 Javascript
Vue的状态管理vuex使用方法详解
Feb 05 Javascript
js实现详情页放大镜效果
Oct 28 Javascript
js微信分享实现代码
Oct 11 #Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 #Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 #Javascript
JSON创建键值对(key是中文或者数字)方式详解
Aug 24 #Javascript
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 #jQuery
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 #Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 #Javascript
You might like
海贼王:最美的悬赏令!
2020/03/02 日漫
PHP中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
2013/07/31 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
基于python实现操作redis及消息队列
2020/08/27 Python
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
鼓励运动员的广播稿
2014/02/08 职场文书
公益广告语集锦
2014/03/13 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
小学生春游活动方案
2014/08/20 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
拖欠货款起诉状
2015/05/20 职场文书
上诉状格式
2015/05/23 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS