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 相关文章推荐
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
js实现字符串和数组之间相互转换操作
Jan 12 Javascript
详解Javascript模板引擎mustache.js
Jan 20 Javascript
JQuery validate插件Remote用法大全
May 15 Javascript
Bootstrap 响应式实用工具实例详解
Mar 29 Javascript
JS实现搜索关键词的智能提示功能
Jul 07 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
基于vue实现圆形菜单栏组件
Jul 05 Javascript
Vue实现回到顶部和底部动画效果
Jul 31 Javascript
vue自定义switch开关组件,实现样式可自行更改
Nov 01 Javascript
js消除图片小游戏代码
Dec 11 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
利用 window_onload 实现select默认选择
2006/10/09 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
Javascript继承机制详解
2017/05/30 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
python制作企业邮箱的爆破脚本
2016/10/05 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
python exit出错原因整理
2020/08/31 Python
python实现AdaBoost算法的示例
2020/10/03 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
经典c++面试题二
2015/08/14 面试题
煤矿开采专业求职信
2014/07/08 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
高二语文教学反思
2016/02/16 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫