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实现图片等比例缩放以及max-width在ie中不兼容解决
Mar 21 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 Javascript
JavaScript通过元素的ID和name设置样式
Jul 08 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
Oct 17 Javascript
js实现数字每三位加逗号的方法
Feb 05 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
JavaScript设置表单上传时文件个数的方法
Aug 11 Javascript
简单谈谈json跨域
Mar 13 Javascript
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
vue左右侧联动滚动的实现代码
Jun 06 Javascript
JavaScript中BOM对象原理与用法分析
Jul 09 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将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
Ubuntu下安装PyV8
2016/03/13 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
python抽取指定url页面的title方法
2018/05/11 Python
python第三方库学习笔记
2020/02/07 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Python 自由定制表格的实现示例
2020/03/20 Python
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
西班牙手机之家:Phone House
2018/10/18 全球购物
运动会入场解说词
2014/02/07 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
整改通知书格式
2015/04/22 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python