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 相关文章推荐
pjblog修改技巧汇总
Mar 12 Javascript
jQuery lazyload 的重复加载错误以及修复方法
Nov 19 Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
Dec 28 Javascript
css配合jquery美化 select
Nov 29 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
通过onmouseover选项卡实现img图片的变化
Feb 12 Javascript
jquery超简单实现手风琴效果的方法
Jun 05 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
限制复选框最多选择项的实现代码
May 30 Javascript
javascript如何创建对象
Aug 29 Javascript
一个简易时钟效果js实现代码
Mar 25 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
python实现杨辉三角思路
2017/07/14 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
python简单验证码识别的实现方法
2019/05/10 Python
Django的models中on_delete参数详解
2019/07/16 Python
python如何将多个PDF进行合并
2019/08/13 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python修改列表值问题解决方案
2020/03/06 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
深入浅析Python代码规范性检测
2020/07/31 Python
详解Python中import机制
2020/09/11 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
中学实习教师自我鉴定
2013/12/12 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
故宫导游词
2015/01/31 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers