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 事件记录使用说明
Oct 20 Javascript
js 文件引入实现代码
Apr 23 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
angular.extend方法的具体使用
Sep 14 Javascript
Javascript中从学习bind到实现bind的过程
Jan 05 Javascript
小程序云函数调用API接口的方法
May 17 Javascript
微信小程序3种位置API的使用方法详解
Aug 05 Javascript
基于JavaScript获取base64图片大小
Oct 18 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 操作文件的一些FAQ总结
2009/02/12 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
template.js前端模板引擎使用详解
2017/10/10 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
Python可变参数用法实例分析
2017/04/02 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
应聘自荐书
2013/10/08 职场文书
打架检讨书100字
2014/01/08 职场文书
服装设计师求职信
2014/06/04 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL