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 相关文章推荐
javascript实现的listview效果
Apr 28 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
Feb 04 Javascript
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
Dec 20 Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 Javascript
Vue自定义toast组件的实例代码
Aug 15 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
js取0-9随机取4个数不重复的数字代码实例
Mar 27 Javascript
详解一个基于套接字实现长连接的express
Mar 28 Javascript
vue中nextTick用法实例
Sep 11 Javascript
jQuery实现手风琴特效
Jan 11 jQuery
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 工厂模式使用方法
2010/05/18 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
js下弹出窗口的变通
2007/04/18 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
Django自定义用户认证示例详解
2018/03/14 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python实现电子产品商店
2019/02/26 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
项目资料员岗位职责
2013/12/10 职场文书
公司年会晚宴演讲稿
2014/01/06 职场文书
安全检查验收制度
2014/01/12 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
企业形象策划方案
2014/05/29 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL