Vue.js实现立体计算器


Posted in Javascript onFebruary 22, 2020

本文实例为大家分享了Vue.js 制作立体计算器的具体方法,供大家参考,具体内容如下

项目效果图

Vue.js实现立体计算器

Vue.js实现立体计算器

Vue.js实现立体计算器

这是一个简单的项目实现加减乘除运算

项目结构

Vue.js实现立体计算器

代码展示

计算器1.0.html

<!DOCTYPE html>
<html>
 <head>
 <title>计算器</title>
 <link rel="stylesheet" type="text/css" href="css/style.css" />
 </head>
 <body>
 <div id="big">
 <div id="c" @click="clear">c</div>
 <div id="a1" @click="add(1)">1</div>
 <div id="a2" @click="add(2)">2</div>
 <div id="a3" @click="add(3)">3</div>
 <div id="a4" @click="add(4)">4</div>
 <div id="a5" @click="add(5)">5</div>
 <div id="a6" @click="add(6)">6</div>
 <div id="a7" @click="add(7)">7</div>
 <div id="a8" @click="add(8)">8</div>
 <div id="a9" @click="add(9)">9</div>
 <div id="a0" @click="add(0)">0</div>
 <div id="a16" @click="add('+')">+</div>
 <div id="a15" @click="add('-')">-</div>
 <div id="a14" @click="add('/')">/</div>
 <div id="a13" @click="add('*')">X</div>
 <div id="a12" @click="run">=</div>
 <div id="a11" @click="add('.')">.</div>
 <input type="text" readonly="readonly" v-model="res" id="a17">
 </div>
 <script src="js/vue/vue.js"></script>
 <script src="js/app.js"></script>
 </body>
</html>

style.css

#big {
 position: relative;
 width: 355px;
 height: 240px;
 background-color: #999cff;
 margin: 100px auto;
 border-radius: 10px;
 box-shadow: 15px 15px 15px #000;
 cursor: pointer;
 }
 
 #big div {
 position: absolute;
 box-shadow: 5px 5px 5px #000;
 display: -webkit-flex;
 display: flex;
 -webkit-align-items: center;
 align-items: center;
 -webkit-justify-content: center;
 justify-content: center;
 width: 80px;
 height: 40px;
 border-radius: 5px;
 }
 
 #c {
 background-color: #FFFFFF;
 left: 10px;
 top: 7px;
 }
 
 #a7 {
 background-color: #FFFFFF;
 left: 10px;
 top: 55px;
 }
 
 #a4 {
 background-color: #FFFFFF;
 left: 10px;
 top: 100px;
 }
 
 #a1 {
 background-color: #FFFFFF;
 left: 10px;
 top: 145px;
 }
 
 #a0 {
 background-color: #FFFFFF;
 left: 10px;
 top: 190px;
 }
 
 #a8 {
 background-color: #FFFFFF;
 left: 95px;
 top: 55px;
 }
 
 #a5 {
 background-color: #FFFFFF;
 left: 95px;
 top: 100px;
 }
 
 #a2 {
 background-color: #FFFFFF;
 left: 95px;
 top: 145px;
 }
 
 #a11 {
 background-color: #FFFFFF;
 left: 95px;
 top: 190px;
 }
 
 #a9 {
 background-color: #FFFFFF;
 left: 180px;
 top: 55px;
 }
 
 #a6 {
 background-color: #FFFFFF;
 left: 180px;
 top: 100px;
 }
 
 #a3 {
 background-color: #FFFFFF;
 left: 180px;
 top: 145px;
 }
 
 #a12 {
 background-color: #FFFFFF;
 left: 180px;
 top: 190px;
 }
 
 #a16 {
 background-color: #f44336;
 left: 265px;
 top: 55px;
 }
 
 #a15 {
 background-color: #f44336;
 left: 265px;
 top: 100px;
 }
 
 #a14 {
 background-color: #f44336;
 left: 265px;
 top: 145px;
 }
 
 #a13 {
 background-color: #f44336;
 left: 265px;
 top: 190px;
 }
 
 #a17 {
 position: absolute;
 box-shadow: inset 5px 5px 5px #000;
 text-align: center;
 font-size: 20px;
 width: 250px;
 height: 40px;
 background-color: #99ffa6;
 border-radius: 5px;
 left: 95px;
 top: 5px;
 }

app.js

var app = new Vue({
 el: '#big',
 data: {
 res: ''
 },
 methods: {
 add: function(index) {
 this.res += index;
 },
 run: function() {
 try {
 this.res = eval(this.res);
 } catch(exception) {
 this.res = '';
 alert("表达式输入错误");
 }
 },
 clear: function() {
 this.res = '';
 }
 }
 })

用相对布局把计算器的每一个按键定好位置,加上一些圆角,颜色可以根据自己喜欢的颜色来给,实现3D效果最关键的是要加上阴影效果。注意input标签的阴影要在内侧。采用Vue.js框架使用v-model指令实现input标签的双向绑定。在methods属性中添加函数 使用v-on指令绑定事件,这里使用缩写@click ,add函数的功能是完成字符串的拼接,run函数调用eval函数将拼接好的字符解析并运算出结果赋给res,如果字符串格式有误抛出异常并通过alert函数反馈给用户然后把res清除。

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

Javascript 相关文章推荐
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
自动刷新网页,自动刷新当前页面,JS调用
Jun 24 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
Nov 20 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
Mar 26 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
面包屑导航详解
Dec 07 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 Javascript
vue实现计算器功能
Feb 22 #Javascript
js实现网页版贪吃蛇游戏
Feb 22 #Javascript
微信小程序 bindtap 传参的实例代码
Feb 21 #Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 #Javascript
JavaScript中this函数使用实例解析
Feb 21 #Javascript
如何通过JS实现转码与解码
Feb 21 #Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 #Javascript
You might like
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
Python3实现的字典遍历操作详解
2018/04/18 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Python如何省略括号方法详解
2020/03/21 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
表彰先进的通报
2014/01/31 职场文书
国培远程培训感言
2014/03/08 职场文书
安全横幅标语
2014/06/09 职场文书
网络技术专业求职信
2014/07/13 职场文书
介绍信样本
2015/01/31 职场文书
经理岗位职责范本
2015/04/15 职场文书
化妆品促销活动总结
2015/05/07 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
Django drf请求模块源码解析
2021/06/08 Python
MySQL创建定时任务
2022/01/22 MySQL
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android