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 相关文章推荐
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
某人初学javascript的时候写的学习笔记
Dec 30 Javascript
使用js获取地址栏中传递的值
Jul 02 Javascript
JS模式之单例模式基本用法
Jun 30 Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
Nov 02 Javascript
bootstrap datetimepicker日期插件使用方法
Jan 13 Javascript
JS实现身份证输入框的输入效果
Aug 21 Javascript
前端开发基础javaScript的六大作用
Aug 06 Javascript
vue v-on:click传递动态参数的步骤
Sep 11 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 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
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
PHP中使用BigMap实例
2015/03/30 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
简单分析python的类变量、实例变量
2019/08/23 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
实习单位接收函
2014/01/11 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
详解Laravel制作API接口
2021/05/31 PHP
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python