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 相关文章推荐
jquery判断单个复选框是否被选中的代码
Sep 03 Javascript
利用js(jquery)操作Cookie的方法说明
Dec 19 Javascript
webapp框架AngularUI的demo改造之路
Dec 21 Javascript
JavaScript简单表格编辑功能实现方法
Apr 16 Javascript
angularjs自定义ng-model标签的属性
Jan 21 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
Vue之Watcher源码解析(2)
Jul 19 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
使用layer弹窗提交表单时判断表单是否输入为空的例子
Sep 26 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
Vue之封装公用变量以及实现方式
Jul 31 Javascript
jQuery实现简单评论区功能
Oct 26 jQuery
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
PHP读取xml方法介绍
2013/01/12 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
php导入模块文件分享
2015/03/17 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
9种python web 程序的部署方式小结
2014/06/30 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
2015年幼儿园新年寄语
2014/12/08 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
小学总务工作总结
2015/08/13 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
python 解决微分方程的操作(数值解法)
2021/05/26 Python