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 相关文章推荐
探讨javascript是不是面向对象的语言
Nov 21 Javascript
javascript 回到顶部效果的实现代码
Feb 17 Javascript
IE6已终止操作问题的2种情况及解决
Apr 23 Javascript
jQuery中:selected选择器用法实例
Jan 04 Javascript
详解 javascript中offsetleft属性的用法
Nov 11 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
JS面向对象编程详解
Mar 06 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
原生JS实现幻灯片
Feb 22 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
php学习之变量的使用
2011/05/29 PHP
详谈PHP文件目录基础操作
2014/11/11 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
jQuery功能函数详解
2015/02/01 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
python实现简单俄罗斯方块
2020/03/13 Python
pygame实现弹球游戏
2020/04/14 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
Python读取yaml文件的详细教程
2020/07/21 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
东方电视购物:东方CJ
2016/10/12 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
助学金感谢信
2015/01/20 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
入党积极分子考察意见
2015/06/02 职场文书