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仿淘宝京东多条件筛选可自行结合ajax加载示例
Aug 28 Javascript
AngularJS表单验证中级篇(3)
Sep 28 Javascript
Javascript 实现放大镜效果实例详解
Dec 03 Javascript
JavaScript中Math对象的方法介绍
Jan 05 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
layui table设置某一行的字体颜色方法
Sep 05 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
Sep 11 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
Oct 09 Javascript
仿照Element-ui实现一个简易的$message方法
Sep 14 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
PHP个人网站架设连环讲(三)
2006/10/09 PHP
destoon二次开发入门示例
2014/06/20 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
把pandas转换int型为str型的方法
2019/01/29 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
python:动态路由的Flask程序代码
2019/11/22 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
python中封包建立过程实例
2021/02/18 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
打造高效课堂实施方案
2014/03/22 职场文书
社团活动总结怎么写
2014/06/30 职场文书
银行转正自我鉴定
2014/09/29 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
英文慰问信范文
2015/03/24 职场文书
公司员工奖惩制度
2015/08/04 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL