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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • vue实现简单实时汇率计算功能

    最近在自己摸索vue的使用,因为相对于只是去看教程和实例,感觉不如自己动手写一个demo入门来的快.刚好看到小程序中有一个简单但是很精致的应用极简汇率,而且它的表现形式和vue的表现形式很像,于是想着自己搞一个简单的应用来试试. 1.第一步是搭好简单的Html结构 <div id="demo"> <h1>汇率转换</h1> <div class="moneyBox"><span>cny</span&g

  • Vue.js实现价格计算器功能

    本文实例为大家分享了Vue.js实现价格计算器功能的具体代码,供大家参考,具体内容如下 实现效果: 实现代码及注释: <!DOCTYPE html> <html> <head> <title>价格计算器</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial

  • Vue.js实现的计算器功能完整示例

    本文实例讲述了Vue.js实现的计算器功能.分享给大家供大家参考,具体如下: 1. HTML部分代码 <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" type="text/css" href="css/css.css" rel="external nofollow" > <sc

  • vue.js实现图书管理功能

    本文实例为大家分享了vue.js实现图书管理功能的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta

  • Vue.js实现的购物车功能详解

    本文实例讲述了Vue.js实现的购物车功能.分享给大家供大家参考,具体如下: 使用计算属性,内置指令,方法等基础知识开发购物车. 需求分析:展示一个已经加入购物车的商品列表,包含商品名称.商品单价.购买数量和操作,以及最后确定是否选中商品的功能,总价格为选中商品的价格,够买数量可以增加减少,商品可以从购物车中移除.效果如图所示: --实例来自<Vue.js实战>第五章 逻辑整理:vue实例定义一个数组list存放商品信息,定义方法与减少按钮,增加按钮等联系,动态改变商品数量,通过handleR

  • Vue.js实现立体计算器

    本文实例为大家分享了Vue.js 制作立体计算器的具体方法,供大家参考,具体内容如下 项目效果图 这是一个简单的项目实现加减乘除运算 项目结构 代码展示 计算器1.0.html <!DOCTYPE html> <html> <head> <title>计算器</title> <link rel="stylesheet" type="text/css" href="css/style.css&

  • vue.js实现价格格式化的方法

    这里分享一个常用的价格格式化的一个方法,在电商的价格处理中非常的实用,我们可以看一个效果 这里在价格数据的地方使用了一个过滤器,通过这个过滤器对价格做了保留小数位的处理. HTML <div class="price"> <span v-html="goods.sale_price|format"></span> <span class="price-before">¥{{"这里是价格数据"}}&l

  • vue.js实现的幻灯片功能示例

    本文实例讲述了vue.js实现的幻灯片功能.分享给大家供大家参考,具体如下: 1.在父组件中 <slide-show :slides="slides"></slide-show> import SlideShow from '@/components/SlideShow' export default { components: { SlideShow, }, 2.在slideshow.vue中 <template> <div class=&q

  • Vue.js实现开发购物车功能的方法详解

    本文实例讲述了Vue.js实现开发购物车功能的方法.分享给大家供大家参考,具体如下: 购物车一般包含商品名称.单价.数量等信息,数量可以任意新增或减少,商品项也可删除,还可以支持全选或多选: 我们把这个小项目分为三个文件: index.html (页面) index.js (Vue 脚本) style.css (样式) 1 index.js 首先在 js 中初始化 Vue 实例,整体模板如下: var app = new Vue({ el: '#app', data: { ... }, moun

  • html+vue.js 实现漂亮分页功能可兼容IE

    当功能比较简单,在单一html中使用vue.js分页展示数据,并未安装脚手架,或使用相关UI框架,此时需要手写一个分页器,不失为最合理最便捷的解决方案 先看一下实现效果: 上代码: 1.简单搞一搞 CSS,此处代码有折叠 2.简单搞一搞 HTML <div id="app" v-cloak @click="showOption=false"> 第{{pageIndex}}页, 每页显示{{pageSize}}条 <div v-show="

  • Vue.js实现图片切换功能

    本文实例为大家分享了Vue.js实现图片切换功能的具体代码,供大家参考,具体内容如下 实现功能如下 文件目录如下,要实现本功能只需要修改图片的存储位置即可 代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/vue.js" type="text/ja

随机推荐