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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
jquery动态改变form属性提交表单
Jun 03 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
JavaScript判断微信浏览器实例代码
Jun 13 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
Jun 17 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
vue webpack实用技巧总结
Apr 24 Javascript
打通前后端构建一个Vue+Express的开发环境
Jul 17 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 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
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python判断完全平方数的方法
2018/11/13 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
Myholidays美国:在线旅游网站
2019/08/16 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
竞争上岗演讲稿
2014/01/05 职场文书
大学毕业感言
2014/01/10 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
商业房地产广告语
2014/03/13 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
分享几种python 变量合并方法
2022/03/20 Python